<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0056)http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/ -->
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"
	xmlns:fb="http://www.facebook.com/2008/fbml"
	xmlns:og="http://opengraphprotocol.org/schema/">
<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css"
	href="./TDD Anti-Patterns   James Carr_files/badge.css" id="badge" />
<link rel="stylesheet" type="text/css"
	href="./TDD Anti-Patterns   James Carr_files/widget57.css" media="all" />


<title>TDD Anti-Patterns | James Carr</title>
<link rel="stylesheet"
	href="./TDD Anti-Patterns   James Carr_files/screen.css"
	type="text/css" media="screen, projection" />
<link rel="stylesheet"
	href="./TDD Anti-Patterns   James Carr_files/print.css" type="text/css"
	media="print" />
<!--[if IE]><link rel="stylesheet" href="http://blog.james-carr.org/wp-content/themes/modern-style/css/ie.css" type="text/css" media="screen, projection"><![endif]-->
<!--[if IE 6]>
	<script src="http://blog.james-carr.org/wp-content/themes/modern-style/js/pngfix.js"></script>
<![endif]-->
<link rel="stylesheet"
	href="./TDD Anti-Patterns   James Carr_files/style.css" type="text/css"
	media="screen" />
<link rel="alternate" type="application/rss+xml"
	title="James Carr RSS Feed" href="http://blog.james-carr.org/feed/" />
<link rel="alternate" type="application/atom+xml"
	title="James Carr Atom Feed"
	href="http://blog.james-carr.org/feed/atom/" />
<link rel="pingback" href="http://blog.james-carr.org/xmlrpc.php" />

<link rel="alternate" type="application/rss+xml"
	title="James Carr » TDD Anti-Patterns Comments Feed"
	href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/feed/" />
<link rel="EditURI" type="application/rsd+xml" title="RSD"
	href="http://blog.james-carr.org/xmlrpc.php?rsd">
	<link rel="wlwmanifest" type="application/wlwmanifest+xml"
		href="http://blog.james-carr.org/wp-includes/wlwmanifest.xml">
		<link rel="index" title="James Carr"
			href="http://blog.james-carr.org/">
			<link rel="start" title="Finally Back Online"
				href="http://blog.james-carr.org/2006/06/07/hello-world/">
				<link rel="prev" title="OOPSLA Day 1: DesignFest"
					href="http://blog.james-carr.org/2006/10/28/oopsla-day-1-designfest/">
					<link rel="next" title="OOPSLA 2006: Design Fest Round 2"
						href="http://blog.james-carr.org/2006/11/04/oopsla-2006-design-fest-round-2/">
						<meta name="generator" content="WordPress 3.0.4">
							<link rel="canonical"
								href="./TDD Anti-Patterns   James Carr_files/TDD Anti-Patterns   James Carr.htm">
								<link rel="shortlink" href="http://blog.james-carr.org/?p=44">
									<meta property="og:title" content="TDD Anti-Patterns">
										<meta property="og:site_name" content="James Carr">
											<meta property="og:url"
												content="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/">
												<meta property="og:type" content="article">
													<meta property="fb:app_id" content="184642768235102">
														<style type="text/css">
.recentcomments a {
	display: inline !important;
	padding: 0 !important;
	margin: 0 !important;
}
</style>

														<style type="text/css">
.fb_hidden {
	position: absolute;
	top: -10000px;
	z-index: 10001
}

.fb_reset {
	background: none;
	border-spacing: 0;
	border: 0;
	color: #000;
	cursor: auto;
	direction: ltr;
	font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
	font-size: 11px;
	font-style: normal;
	font-variant: normal;
	font-weight: normal;
	letter-spacing: normal;
	line-height: 1;
	margin: 0;
	overflow: visible;
	padding: 0;
	text-align: left;
	text-decoration: none;
	text-indent: 0;
	text-shadow: none;
	text-transform: none;
	visibility: visible;
	white-space: normal;
	word-spacing: normal
}

.fb_link img {
	border: none
}

.fb_dialog {
	position: absolute;
	top: -10000px;
	z-index: 10001
}

.fb_dialog_advanced {
	background: rgba(82, 82, 82, .7);
	padding: 10px;
	-moz-border-radius: 8px;
	-webkit-border-radius: 8px
}

.fb_dialog_content {
	background: #fff;
	color: #333
}

.fb_dialog_close_icon {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zq/r/IE9JII6Z1Ys.png)
		no-repeat scroll 0 0 transparent;
	_background-image:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zL/r/s816eWC-2sl.gif);
	cursor: pointer;
	display: block;
	height: 15px;
	position: absolute;
	right: 18px;
	top: 17px;
	width: 15px;
	top: 8px\9;
	right: 7px\9

}

.fb_dialog_close_icon:hover {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zq/r/IE9JII6Z1Ys.png)
		no-repeat scroll 0 -15px transparent;
	_background-image:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zL/r/s816eWC-2sl.gif)
}

.fb_dialog_close_icon:active {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zq/r/IE9JII6Z1Ys.png)
		no-repeat scroll 0 -30px transparent;
	_background-image:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zL/r/s816eWC-2sl.gif)
}

.fb_dialog_loader {
	background-color: #f2f2f2;
	border: 1px solid #606060;
	font-size: 24px;
	padding: 20px
}

.fb_dialog_top_left,.fb_dialog_top_right,.fb_dialog_bottom_left,.fb_dialog_bottom_right
	{
	height: 10px;
	width: 10px;
	overflow: hidden;
	position: absolute
}

.fb_dialog_top_left {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/ze/r/8YeTNIlTZjm.png)
		no-repeat 0 0;
	left: -10px;
	top: -10px
}

.fb_dialog_top_right {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/ze/r/8YeTNIlTZjm.png)
		no-repeat 0 -10px;
	right: -10px;
	top: -10px
}

.fb_dialog_bottom_left {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/ze/r/8YeTNIlTZjm.png)
		no-repeat 0 -20px;
	bottom: -10px;
	left: -10px
}

.fb_dialog_bottom_right {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/ze/r/8YeTNIlTZjm.png)
		no-repeat 0 -30px;
	right: -10px;
	bottom: -10px
}

.fb_dialog_vert_left,.fb_dialog_vert_right,.fb_dialog_horiz_top,.fb_dialog_horiz_bottom
	{
	position: absolute;
	background: #525252;
	filter: alpha(opacity =   70);
	opacity: .7
}

.fb_dialog_vert_left,.fb_dialog_vert_right {
	width: 10px;
	height: 100%
}

.fb_dialog_vert_left {
	margin-left: -10px
}

.fb_dialog_vert_right {
	right: 0;
	margin-right: -10px
}

.fb_dialog_horiz_top,.fb_dialog_horiz_bottom {
	width: 100%;
	height: 10px
}

.fb_dialog_horiz_top {
	margin-top: -10px
}

.fb_dialog_horiz_bottom {
	bottom: 0;
	margin-bottom: -10px
}

.fb_dialog_iframe {
	line-height: 0
}

.fb_dialog_content .dialog_title {
	background: #6d84b4;
	border: 1px solid #3b5998;
	color: #fff;
	font-size: 14px;
	font-weight: bold;
	margin: 0
}

.fb_dialog_content .dialog_title>span {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zd/r/Cou7n-nqK52.gif)
		no-repeat 5px 50%;
	float: left;
	padding: 5px 0 7px 26px
}

.fb_dialog_content .dialog_content {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/z9/r/jKEcVPZFk-2.gif)
		no-repeat 50% 50%;
	border: 1px solid #555;
	border-bottom: 0;
	border-top: 0;
	height: 150px
}

.fb_dialog_content .dialog_footer {
	background: #f2f2f2;
	border: 1px solid #555;
	border-top-color: #ccc;
	height: 40px
}

#fb_dialog_loader_close {
	float: right
}

.fb_iframe_widget {
	position: relative;
	display: -moz-inline-block;
	display: inline-block
}

.fb_iframe_widget iframe {
	position: relative;
	vertical-align: text-bottom
}

.fb_iframe_widget span {
	position: relative
}

.fb_hide_iframes iframe {
	position: relative;
	left: -10000px
}

.fb_iframe_widget_loader {
	position: relative;
	display: inline-block
}

.fb_iframe_widget_loader iframe {
	min-height: 32px;
	z-index: 2;
	zoom: 1
}

.fb_iframe_widget_loader .FB_Loader {
	background:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/z9/r/jKEcVPZFk-2.gif)
		no-repeat;
	height: 32px;
	width: 32px;
	margin-left: -16px;
	position: absolute;
	left: 50%;
	z-index: 4
}

.fb_button_simple,.fb_button_simple_rtl {
	background-image:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zH/r/eIpbnVKI9lR.png);
	background-repeat: no-repeat;
	cursor: pointer;
	outline: none;
	text-decoration: none
}

.fb_button_simple_rtl {
	background-position: right 0
}

.fb_button_simple .fb_button_text {
	margin: 0 0 0 20px;
	padding-bottom: 1px
}

.fb_button_simple_rtl .fb_button_text {
	margin: 0 10px 0 0
}

a.fb_button_simple:hover .fb_button_text,a.fb_button_simple_rtl:hover .fb_button_text,.fb_button_simple:hover .fb_button_text,.fb_button_simple_rtl:hover .fb_button_text
	{
	text-decoration: underline
}

.fb_button,.fb_button_rtl {
	background: #29447e
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zL/r/FGFbc80dUKj.png);
	background-repeat: no-repeat;
	cursor: pointer;
	display: inline-block;
	padding: 0 0 0 1px;
	text-decoration: none;
	outline: none
}

.fb_button .fb_button_text,.fb_button_rtl .fb_button_text {
	background: #5f78ab
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zL/r/FGFbc80dUKj.png);
	border-top: solid 1px #879ac0;
	border-bottom: solid 1px #1a356e;
	color: #fff;
	display: block;
	font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
	font-weight: bold;
	padding: 2px 6px 3px 6px;
	margin: 1px 1px 0 21px;
	text-shadow: none
}

a.fb_button,a.fb_button_rtl,.fb_button,.fb_button_rtl {
	text-decoration: none
}

a.fb_button:active .fb_button_text,a.fb_button_rtl:active .fb_button_text,.fb_button:active .fb_button_text,.fb_button_rtl:active .fb_button_text
	{
	border-bottom: solid 1px #29447e;
	border-top: solid 1px #45619d;
	background: #4f6aa3;
	text-shadow: none
}

.fb_button_xlarge,.fb_button_xlarge_rtl {
	background-position: left -60px;
	font-size: 24px;
	line-height: 30px
}

.fb_button_xlarge .fb_button_text {
	padding: 3px 8px 3px 12px;
	margin-left: 38px
}

a.fb_button_xlarge:active {
	background-position: left -99px
}

.fb_button_xlarge_rtl {
	background-position: right -268px
}

.fb_button_xlarge_rtl .fb_button_text {
	padding: 3px 8px 3px 12px;
	margin-right: 39px
}

a.fb_button_xlarge_rtl:active {
	background-position: right -307px
}

.fb_button_large,.fb_button_large_rtl {
	background-position: left -138px;
	font-size: 13px;
	line-height: 16px
}

.fb_button_large .fb_button_text {
	margin-left: 24px;
	padding: 2px 6px 4px 6px
}

a.fb_button_large:active {
	background-position: left -163px
}

.fb_button_large_rtl {
	background-position: right -346px
}

.fb_button_large_rtl .fb_button_text {
	margin-right: 25px
}

a.fb_button_large_rtl:active {
	background-position: right -371px
}

.fb_button_medium,.fb_button_medium_rtl {
	background-position: left -188px;
	font-size: 11px;
	line-height: 14px
}

a.fb_button_medium:active {
	background-position: left -210px
}

.fb_button_medium_rtl {
	background-position: right -396px
}

.fb_button_text_rtl,.fb_button_medium_rtl .fb_button_text {
	padding: 2px 6px 3px 6px;
	margin-right: 22px
}

a.fb_button_medium_rtl:active {
	background-position: right -418px
}

.fb_button_small,.fb_button_small_rtl {
	background-position: left -232px;
	font-size: 10px;
	line-height: 10px
}

.fb_button_small .fb_button_text {
	padding: 2px 6px 3px;
	margin-left: 17px
}

a.fb_button_small:active,.fb_button_small:active {
	background-position: left -250px
}

.fb_button_small_rtl {
	background-position: right -440px
}

.fb_button_small_rtl .fb_button_text {
	padding: 2px 6px;
	margin-right: 18px
}

a.fb_button_small_rtl:active {
	background-position: right -458px
}

.fb_share_count_wrapper {
	position: relative;
	float: left
}

.fb_share_count {
	background: #b0b9ec none repeat scroll 0 0;
	color: #333;
	font-family: "lucida grande", tahoma, verdana, arial, sans-serif;
	text-align: center
}

.fb_share_count_inner {
	background: #e8ebf2;
	display: block
}

.fb_share_count_right {
	margin-left: -1px;
	display: inline-block
}

.fb_share_count_right .fb_share_count_inner {
	border-top: solid 1px #e8ebf2;
	border-bottom: solid 1px #b0b9ec;
	margin: 1px 1px 0 1px;
	font-size: 10px;
	line-height: 10px;
	padding: 2px 6px 3px;
	font-weight: bold
}

.fb_share_count_top {
	display: block;
	letter-spacing: -1px;
	line-height: 34px;
	margin-bottom: 7px;
	font-size: 22px;
	border: solid 1px #b0b9ec
}

.fb_share_count_nub_top {
	border: none;
	display: block;
	position: absolute;
	left: 7px;
	top: 35px;
	margin: 0;
	padding: 0;
	width: 6px;
	height: 7px;
	background-repeat: no-repeat;
	background-image:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zU/r/bSOHtKbCGYI.png)
}

.fb_share_count_nub_right {
	border: none;
	display: inline-block;
	padding: 0;
	width: 5px;
	height: 10px;
	background-repeat: no-repeat;
	background-image:
		url(http://static.ak.fbcdn.net/rsrc.php/v1/zX/r/i_oIVTKMYsL.png);
	vertical-align: top;
	background-position: right 5px;
	z-index: 10;
	left: 2px;
	margin: 0 2px 0 0;
	position: relative
}

.fb_share_no_count {
	display: none
}

.fb_share_size_Small .fb_share_count_right .fb_share_count_inner {
	font-size: 10px
}

.fb_share_size_Medium .fb_share_count_right .fb_share_count_inner {
	font-size: 11px;
	padding: 2px 6px 3px;
	letter-spacing: -1px;
	line-height: 14px
}

.fb_share_size_Large .fb_share_count_right .fb_share_count_inner {
	font-size: 13px;
	line-height: 16px;
	padding: 2px 6px 4px;
	font-weight: normal;
	letter-spacing: -1px
}

.fb_share_count_hidden .fb_share_count_nub_top,.fb_share_count_hidden .fb_share_count_top,.fb_share_count_hidden .fb_share_count_nub_right,.fb_share_count_hidden .fb_share_count_right
	{
	visibility: hidden
}

.fb_connect_bar_container div,.fb_connect_bar_container span,.fb_connect_bar_container a,.fb_connect_bar_container img,.fb_connect_bar_container strong
	{
	background: none;
	border-spacing: 0;
	border: 0;
	direction: ltr;
	font-style: normal;
	font-variant: normal;
	letter-spacing: normal;
	line-height: 1;
	margin: 0;
	overflow: visible;
	padding: 0;
	text-align: left;
	text-decoration: none;
	text-indent: 0;
	text-shadow: none;
	text-transform: none;
	visibility: visible;
	white-space: normal;
	word-spacing: normal;
	vertical-align: baseline
}

.fb_connect_bar_container {
	position: fixed;
	left: 0 !important;
	right: 0 !important;
	height: 42px !important;
	padding: 0 25px !important;
	margin: 0 !important;
	vertical-align: middle !important;
	border-bottom: 1px solid #333 !important;
	background: #3b5998 !important;
	z-index: 99999999 !important;
	overflow: hidden !important
}

.fb_connect_bar_container_ie6 {
	position: absolute;
	top: expression(document.compatMode ==   "CSS1Compat" ?   
		 document.documentElement.scrollTop +   "px" :   body.scrollTop +  
		"px")
}

.fb_connect_bar {
	position: relative;
	margin: auto;
	height: 100%;
	width: 100%;
	padding: 6px 0 0 0 !important;
	background: none;
	color: #fff !important;
	font-family: "lucida grande", tahoma, verdana, arial,
		sans-serif !important;
	font-size: 13px !important;
	font-style: normal !important;
	font-variant: normal !important;
	font-weight: normal !important;
	letter-spacing: normal !important;
	line-height: 1 !important;
	text-decoration: none !important;
	text-indent: 0 !important;
	text-shadow: none !important;
	text-transform: none !important;
	white-space: normal !important;
	word-spacing: normal !important
}

.fb_connect_bar a:hover {
	color: #fff
}

.fb_connect_bar .fb_profile img {
	height: 30px;
	width: 30px;
	vertical-align: middle;
	margin: 0 6px 5px 0
}

.fb_connect_bar div a,.fb_connect_bar span,.fb_connect_bar span a {
	color: #bac6da;
	font-size: 11px;
	text-decoration: none
}

.fb_connect_bar .fb_buttons {
	float: right;
	margin-top: 7px
}

.fb_edge_widget_with_comment {
	position: relative;
	*z-index: 1000
}

.fb_edge_widget_with_comment span.fb_edge_comment_widget {
	position: absolute
}

.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_ltr {
	left: -4px
}

.fb_edge_widget_with_comment span.fb_edge_comment_widget iframe.fb_rtl {
	left: 2px
}

.fb_edge_widget_with_comment span.fb_send_button_form_widget {
	left: 0;
	z-index: 1
}

.fb_edge_widget_with_comment span.fb_send_button_form_widget .FB_Loader
	{
	left: 0;
	top: 1px;
	margin-top: 6px;
	margin-left: 0;
	background-position: 50% 50%;
	background-color: #fff;
	height: 150px;
	width: 394px;
	border: 1px #666 solid;
	border-bottom: 2px solid #283e6c;
	z-index: 1
}

.fb_edge_widget_with_comment span.fb_send_button_form_widget.dark .FB_Loader
	{
	background-color: #000;
	border-bottom: 2px solid #ccc
}

.fb_edge_widget_with_comment span.fb_send_button_form_widget.siderender
.FB_Loader {
	margin-top: 0
}

#fb_social_bar_container {
	position: fixed;
	left: 0;
	right: 0;
	height: 34px;
	padding: 0 25px;
	z-index: 999999999
}

.fb_social_bar_iframe {
	position: relative;
	float: right;
	opacity: 0;
	-moz-opacity: 0;
	filter: alpha(opacity =   0)
}

.fb_social_bar_iframe_bottom_ie6 {
	bottom: auto;
	top: expression(eval(document.documentElement.scrollTop + 
		 document.documentElement.clientHeight-this.offsetHeight- (  
		parseInt(this.currentStyle.marginTop, 10) ||   0 ) -(  
		parseInt(this.currentStyle.marginBottom, 10) ||   0 ) ) )
}

.fb_social_bar_iframe_top_ie6 {
	bottom: auto;
	top: expression(eval(document.documentElement.scrollTop-this.offsetHeight- ( 
		 parseInt(this.currentStyle.marginTop, 10) ||   0 ) -( 
		 parseInt(this.currentStyle.marginBottom, 10) ||   0 ) ) )
}
</style>
</head>
<body>
	<div
		style="visibility: hidden; height: 1px; width: 1px; position: absolute; z-index: 100000;"
		id="_atssh">
		<iframe id="_atssh397" title="AddThis utility frame"
			style="height: 1px; width: 1px; position: absolute; z-index: 100000; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; left: 0px; top: 0px;"
			src="./TDD Anti-Patterns   James Carr_files/sh39.htm"></iframe>
	</div>
	<div id="wrapper">
		<div id="container" class="container">

			<div class="span-16">
				<div id="header">
					<h1>
						<a href="http://blog.james-carr.org/">James Carr</a>
					</h1>
					<h2>Rants and Musings of an Agile Developer</h2>
				</div>

				<div class="navcontainer">
					<ul id="nav">
						<li><a href="http://blog.james-carr.org/">Home</a></li>
						<li class="page_item page-item-2"><a
							href="http://blog.james-carr.org/about/" title="About">About</a>
						</li>
						<li class="page_item page-item-970"><a
							href="http://blog.james-carr.org/training/" title="Training">Training</a>
						</li>

					</ul>
				</div>
				<div id="content">


					<div
						class="post-44 post type-post hentry category-test-driven-development clearfix"
						id="post-44">
						<h2 class="title">TDD Anti-Patterns</h2>
						<div class="postdate">
							<span>November 3rd, 2006</span> <span><a
								href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comments"
								title="Comment on TDD Anti-Patterns">123 Comments</a> </span>
						</div>

						<div class="entry">
							<p>
								Recently I began to write a paper on TDD Anti-Patterns, and
								decided to first quickly jot down some of the most common ones
								that others or myself have encountered “in the wild.” I then
								posted what I had on the <a
									href="http://tech.groups.yahoo.com/group/testdrivendevelopment/">testdrivendevelopment</a>
								on <a href="http://groups.yahoo.com/">yahoogroups</a> mailing
								list, and got an excellent bit of feedback!
							</p>
							<p>As a side note, keep in mind this is merely a catalog at
								the moment, hopefully to be expanded in full down the road.</p>
							<h3>TDD Anti-Pattern Catalogue</h3>
							<dl>
								<dt>The Liar</dt>
								<dd>An entire unit test that passes all of the test cases
									it has and appears valid, but upon closer inspection it is
									discovered that it doesn’t really test the intended target at
									all.</dd>
								<dt>Excessive Setup</dt>
								<dd>A test that requires a lot of work setting up in order
									to even begin testing. Sometimes several hundred lines of code
									is used to setup the environment for one test, with several
									objects involved, which can make it difficult to really
									ascertain what is tested due to the “noise” of all of the setup
									going on.</dd>
								<dt>The Giant</dt>
								<dd>
									A unit test that, although it is validly testing the object
									under test, can span thousands of lines and contain many many
									test cases. This can be an indicator that the system under
									tests is a <a href="http://en.wikipedia.org/wiki/God_object">God
										Object</a>
								</dd>
								<dt>The Mockery</dt>
								<dd>Sometimes mocking can be good, and handy. But sometimes
									developers can lose themselves and in their effort to mock out
									what isn’t being tested. In this case, a unit test contains so
									many mocks, stubs, and/or fakes that the system under test
									isn’t even being tested at all, instead data returned from
									mocks is what is being tested.</dd>
								<dt>The Inspector</dt>
								<dd>A unit test that violates encapsulation in an effort to
									achieve 100% code coverage, but knows so much about what is
									going on in the object that any attempt to refactor will break
									the existing test and require any change to be reflected in the
									unit test.</dd>
								<dt>
									Generous Leftovers <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#joakim">[4]</a>
									</sup>
								</dt>
								<dd>An instance where one unit test creates data that is
									persisted somewhere, and another test reuses the data for its
									own devious purposes. If the “generator” is ran afterward, or
									not at all, the test using that data will outright fail.</dd>
								<dt>
									The Local Hero <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#frank">[1]</a>
									</sup>
								</dt>
								<dd>A test case that is dependent on something specific to
									the development environment it was written on in order to run.
									The result is the test passes on development boxes, but fails
									when someone attempts to run it elsewhere.</dd>
								<dt>
									The Nitpicker <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#frank">[1]</a>
									</sup>
								</dt>
								<dd>A unit test which compares a complete output when it’s
									really only interested in small parts of it, so the test has to
									continually be kept in line with otherwise unimportant details.
									Endemic in web application testing.</dd>
								<dt>
									The Secret Catcher<sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#frank">[1]</a>
									</sup>
								</dt>
								<dd>A test that at first glance appears to be doing no
									testing due to the absence of assertions, but as they say, “the
									devil’s in the details.” The test is really relying on an
									exception to be thrown when a mishap occurs, and is expecting
									the testing framework to capture the exception and report it to
									the user as a failure.</dd>
								<dt>
									The Dodger <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#frank">[1]</a>
									</sup>
								</dt>
								<dd>A unit test which has lots of tests for minor (and
									presumably easy to test) side effects, but never tests the core
									desired behavior. Sometimes you may find this in database
									access related tests, where a method is called, then the test
									selects from the database and runs assertions against the
									result.</dd>
								<dt>
									The Loudmouth <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#frank">[1]</a>
									</sup>
								</dt>
								<dd>A unit test (or test suite) that clutters up the
									console with diagnostic messages, logging messages, and other
									miscellaneous chatter, even when tests are passing. Sometimes
									during test creation there was a desire to manually see output,
									but even though it’s no longer needed, it was left behind.</dd>
								<dt>
									The Greedy Catcher <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#frank">[1]</a>
									</sup>
								</dt>
								<dd>A unit test which catches exceptions and swallows the
									stack trace, sometimes replacing it with a less informative
									failure message, but sometimes even just logging (c.f.
									Loudmouth) and letting the test pass.</dd>
								<dt>
									The Sequencer <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#frank">[1]</a>
									</sup>
								</dt>
								<dd>A unit test that depends on items in an unordered list
									appearing in the same order during assertions.</dd>
								<dt>Hidden Dependency</dt>
								<dd>A close cousin of The Local Hero, a unit test that
									requires some existing data to have been populated somewhere
									before the test runs. If that data wasn’t populated, the test
									will fail and leave little indication to the developer what it
									wanted, or why… forcing them to dig through acres of code to
									find out where the data it was using was supposed to come from.</dd>
								<dt>
									The Enumerator <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#tim">[2]</a>
									</sup>
								</dt>
								<dd>A unit test with each test case method name is only an
									enumeration, i.e. test1, test2, test3. As a result, the
									intention of the test case is unclear, and the only way to be
									sure is to read the test case code and pray for clarity.</dd>
								<dt>The Stranger</dt>
								<dd>
									A test case that doesn’t even belong in the unit test it is
									part of. it’s really testing a separate object, most likely an
									object that is used by the object under test, but the test case
									has gone and tested that object directly without relying on the
									output from the object under test making use of that object for
									its own behavior. Also known as <strong>TheDistantRelative</strong><sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#kelly">[5]</a>
									</sup>.
								</dd>
								<dt>
									The Operating System Evangelist <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#cory">[3]</a>
									</sup>
								</dt>
								<dd>A unit test that relies on a specific operation system
									environment to be in place in order to work. A good example
									would be a test case that uses the newline sequence for windows
									in an assertion, only to break when ran on Linux.</dd>
								<dt>
									Success Against All Odds <sup><a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#tim">[2]</a>
									</sup>
								</dt>
								<dd>A test that was written pass first rather than fail
									first. As an unfortunate side effect, the test case happens to
									always pass even though the test should fail.</dd>
								<dt>The Free Ride</dt>
								<dd>Rather than write a new test case method to test
									another feature or functionality, a new assertion rides along
									in an existing test case.</dd>
								<dt>The One</dt>
								<dd>
									A combination of several patterns, particularly <strong>TheFreeRide</strong>
									and <strong>TheGiant</strong>, a unit test that contains only
									one test method which tests the entire set of functionality an
									object has. A common indicator is that the test method is often
									the same as the unit test name, and contains multiple lines of
									setup and assertions.
								</dd>
								<dt>The Peeping Tom</dt>
								<dd>
									A test that, due to shared resources, can see the result data
									of another test, and may cause the test to fail even though the
									system under test is perfectly valid. This has been seen
									commonly in fitnesse, where the use of static member variables
									to hold collections aren’t properly cleaned after test
									execution, often popping up unexpectedly in other test runs.
									Also known as <strong>TheUninvitedGuests</strong>
								</dd>
								<dt>The Slow Poke</dt>
								<dd>A unit test that runs incredibly slow. When developers
									kick it off, they have time to go to the bathroom, grab a
									smoke, or worse, kick the test off before they go home at the
									end of the day.</dd>
							</dl>
							<p>Well, that wraps it up for now. I’d like it if people
								could vote on the top ten anti-patterns listed here so I can go
								about writing up more detailed descriptions, examples, symptoms,
								and (hopefully) refactorings to move away from the anti-pattern
								listed.</p>
							<p>If I left anyone out, please let me know, and any
								additional patterns are highly welcomed!</p>
							<p>
								<sub></sub>
							</p>
							<ul style="list-style-type: none;">
								<li><a name="frank">[1]</a>Frank Carver</li>
								<li><a name="tim">[2]</a>Tim Ottinger</li>
								<li><a name="cory">[3]</a>Cory Foy</li>
								<li><a name="joakim">[4]</a>Joakim Ohlrogge</li>
								<li><a name="kelly">[5]</a>Kelly Anderson</li>
							</ul>
							<p></p>
						</div>
						<div class="postmeta">
							Posted in <a
								href="http://blog.james-carr.org/category/test-driven-development/"
								title="View all posts in Test Driven Development"
								rel="category tag">Test Driven Development</a> |
						</div>

						<div class="navigation clearfix">
							<div class="alignleft">
								« <a
									href="http://blog.james-carr.org/2006/10/28/oopsla-day-1-designfest/"
									rel="prev">OOPSLA Day 1: DesignFest</a>
							</div>
							<div class="alignright">
								<a
									href="http://blog.james-carr.org/2006/11/04/oopsla-2006-design-fest-round-2/"
									rel="next">OOPSLA 2006: Design Fest Round 2</a> »
							</div>
						</div>

						You can <a
							href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#respond">leave
							a response</a>, or <a
							href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/trackback/"
							rel="trackback">trackback</a> from your own site.

					</div>
					<!--/post-44-->


					<!-- Facebook Comments for WordPress v1.6 by Graham Swan (http://grahamswan.com/facebook-comments/) -->

					<a name="facebook-comments"></a>

					<div id="fb-root" class=" fb_reset">
						<div
							style="position: absolute; top: -10000px; height: 0px; width: 0px;">
							<div>
								<iframe id="f3b741660c" name="f3cfd146d" scrolling="no"
									style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; overflow-x: hidden; overflow-y: hidden;"
									class="FB_UI_Hidden"
									src="./TDD Anti-Patterns   James Carr_files/login_status.htm"></iframe>
							</div>
						</div>
					</div>
					<script src="./TDD Anti-Patterns   James Carr_files/all.js"></script>

					<div id="fbComments" style="margin: 20px 0;">
						<p
							style="margin-bottom: 15px; font-size: 140%; font-weight: bold; border-bottom: 2px solid #000; padding-bottom: 5px;">Facebook
							comments:</p>
						<fb:comments xid="wtv1YKhNbQOCR30_post44" numposts="10"
							width="500" simple="" publish_feed="" reverse=""
							css="http://blog.james-carr.org/wp-content/plugins/facebook-comments-for-wordpress/css/facebook-comments-hidefblink.css?W7lWHjfjh6W6uPz"
							send_notification_uid="" title="TDD Anti-Patterns"
							url="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/"
							notify="true" class="  fb_iframe_widget">
							<span><iframe id="f3683cf6f" name="f16b06d4a4"
									scrolling="no"
									style="border-width: initial; border-color: initial; overflow-x: hidden; overflow-y: hidden; width: 500px; height: 160px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial;"
									class="fb_ltr"
									src="./TDD Anti-Patterns   James Carr_files/comments.htm"></iframe>
							</span>
						</fb:comments>
					</div>

					<!-- You can start editing here. -->

					<h3 id="comments">123 Responses to “TDD Anti-Patterns”</h3>

					<ol class="commentlist">
						<li class="pingback even thread-even depth-1" id="comment-264">
							<div id="div-comment-264" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://weblogs.asp.net/bsimser/archive/2006/11/03/Refactoring-to-Anti_2D00_Patterns.aspx"
										rel="external nofollow" class="url">Fear and Loathing :
											Refactoring to Anti-Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-264">
										November 3, 2006 at 11:45 pm</a>
								</div>

								<p>[...] We all know the idea of refactoring to patterns is
									good. In fact that’s generally how I refactor. I see a code
									smell (say you have a loop that is doing too many things) and
									refactor to&nbsp;a pattern like Split Loop in order to fix the
									smell. How about refactoring to Anti-patterns? Or just plain
									detecting Anti-patterns in unit tests. That’s what James
									Carr&nbsp;is up to here. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=264#respond"
										onclick="return addComment.moveForm(&quot;div-comment-264&quot;, &quot;264&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-265">
							<div id="div-comment-265" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/ea9e57e6b525bb5be217e9e547e2c7c4"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.efsol.com/"
											rel="external nofollow" class="url">Frank Carver</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-265">
										November 4, 2006 at 7:18 am</a>
								</div>

								<p>
									I’ve been mulling over this list and thought of another few
									I’ve faced<br> in the past. It took me a while to think up
										appropriate names, though.<br> Somehow these all seem to
											have an avian theme <img
											src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
											alt=":)" class="wp-smiley">
								</p>
								<p>
									* The Cuckoo – A unit test which sits in a test case with<br>
										several others, and enjoys the same (potentially lengthy)
										setup<br> process as the other tests in the test case,
											but then discards the<br> some or all of the artefacts
												from the setup and creates its own. 
								</p>
								<p>
									One of a cluster of test case structure anti-patterns along
									with<br> Stranger/Distant Relative, Mother Hen and
										probably Long Conversation 
								</p>
								<p>
									This is really a sort of “test case envy” and would probably
									benefit<br> from refactoring into a separate test case. In
										more subtle cases it<br> might also be asking for a
											shared base class for the two test cases. 
								</p>
								<p>
									If left unchecked, this can lead to test cases where hardly any
									tests<br> make use of the common setup process, but its
										done for every test<br> anyway. 
								</p>
								<p>
									One thing to avoid is the temptation to just shove *all* the<br>
										initialization into the common setup, which just confuses and
										slows<br> down the whole process. This can lead to a
											Mother Hen (below). 
								</p>
								<p>
									* The Mother Hen – A common setup which does far more than the
									actual<br> test cases need. For example creating all sorts
										of complex data structures<br> populated with apparently
											important and unique values when the tests<br> only
												assert for presence or absence of something. 
								</p>
								<p>
									This can be a sign that the setup was written before the tests<br>
										themselves, which is a subtle bit of up-front design easily
										hidden in<br> an otherwise fully TDD process. 
								</p>
								<p>
									One of a cluster of test case structure anti-patterns along
									with<br> Stranger/Distant Relative, Cuckoo and probably
										Long Conversation 
								</p>
								<p>
									* The Wild Goose – A unit test which, even though it initially
									appears<br> simple, seems to require an ever increasing
										amount of the application<br> to be created or
											initialised in order to make it pass. 
								</p>
								<p>
									This sort of test can take up a disproportionate amount of
									developer<br> time, and lose the benefits of the fast
										turn-round TDD cycle. In the<br> worst case, TDD is
											effectively abandoned while the all or most of the<br>
												application is developed using an untested up-front process
												to make a<br> single test pass. 
								</p>
								<p>
									This is common among developers new to TDD who are not yet
									comfortable<br> with “faking” a response before moving the
										focus of design to a lower<br> level. 
								</p>
								<p>
									* The Homing Pigeon – A unit test which (typically because it
									requires<br> non-public access to a class under test)
										needs to be created and run<br> at a particular place in
											a package hierarchy. This initially seems<br> perfectly
												reasonable, but can unexpectedly fail if the class under<br>
													test is moved to a new location or (worse) split so that
													its behaviour<br> goes to more than one such location.
												
								</p>
								<p>
									One of a cluster of implicit assumption anti-patterns along
									with Local<br> Hero, Operating System Evangelist and
										Hidden Dependency 
								</p>
								<p>
									It should probably be noted that this is still an active area
									of<br> discussion, with many people arguing that it is a
										necessary or even<br> benficial approach to design by
											allowing testing of non-public access. 
								</p>
								<p>
									* The Dodo – A unit test which tests behavior no longer
									required in<br> the application. Both the behaviour and
										the test should probably be<br> deleted. 
								</p>
								<p>
									* Love Birds – A test case which is so closely coupled with a<br>
										particular class under test that it distracts from the need to
										test<br> important interaction between classes. Commonly
											found in a test package<br> structure created for Homing
												Pigeons where there is no obvious place<br> to put
													tests for class interaction. 
								</p>
								<p>I’m really enjoying this game, can you tell?</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=265#respond"
										onclick="return addComment.moveForm(&quot;div-comment-265&quot;, &quot;265&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-267">
							<div id="div-comment-267" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/016999e57a592e8b4fd4973a2e2d5c22"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">chuck</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-267">
										November 4, 2006 at 3:44 pm</a>
								</div>

								<p>* Old Predictable – A test case that tests multithreaded
									conditions with the same thread ordering every time, or random
									data with the same random sample data (or seed) every time.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=267#respond"
										onclick="return addComment.moveForm(&quot;div-comment-267&quot;, &quot;267&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor odd alt thread-odd thread-alt depth-1"
							id="comment-268">
							<div id="div-comment-268" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-268">
										November 4, 2006 at 5:54 pm</a>
								</div>

								<p>
									Frank: What’s up with the bird themed names? Have you been
									watching National Geographic all day? <img
										src="./TDD Anti-Patterns   James Carr_files/icon_wink.gif"
										alt=";)" class="wp-smiley">
								</p>
								<p>Chuck: Thanks for including a threaded related test. I
									have not had the experience of doing TDD with threaded
									applications much, but from what I have seen on some of the
									mailing list, it can be quite easy to write lousy tests for
									threaded applications.</p>
								<p>
									Thanks,<br> James 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=268#respond"
										onclick="return addComment.moveForm(&quot;div-comment-268&quot;, &quot;268&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor even thread-even depth-1"
							id="comment-269">
							<div id="div-comment-269" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-269">
										November 4, 2006 at 10:22 pm</a>
								</div>

								<p>Hmm… here’s another that came to mind just now while
									looking at the unit tests for a certain project I just
									downloaded…</p>
								<p>
									The Web Surfer<br> A unit test that requires a connection
										to internet with access to the outside world in order to run.
									
								</p>
								<p>Wow! Some these are really starting to get generalized!</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=269#respond"
										onclick="return addComment.moveForm(&quot;div-comment-269&quot;, &quot;269&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-274">
							<div id="div-comment-274" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/328bcf45b24e219e3ea9f4c57017b9b1"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://cime.net/~ricky/"
											rel="external nofollow" class="url">Ricky Clarkson</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-274">
										November 5, 2006 at 11:09 am</a>
								</div>

								<p>I’d like to see some solutions or advice about some of
									these, as well as just identifying them.</p>
								<p>The Inspector, for example – my solution is to make the
									class under test package private (but it implements a public
									interface) and test it that way.. although I find that a test
									that depends on breaking encapsulation is probably testing
									behaviour that is impossible via the public interface, so the
									test has little value. What’s your solution?</p>
								<p>The Loudmouth – I normally just run my tests and delete
									the logging code when they pass, but I can see the value in
									keeping it, and only showing it when the tests fail. With the
									standard exception-based test frameworks, I suppose this would
									be quite verbose. Thankfully I rolled my own test framework
									where you return SUCCESS or FAILURE (enum members – slightly
									clearer than true/false), so I don’t think this would be too
									verbose. Subjective, I know. A nice feature is that if the test
									throws an exception instead, it is not just a failure, but
									‘blocked’. The test suite stops – of course that might not
									always be good, but it’s currently my preference.</p>
								<p>Frank Carver’s Wild Goose is surely pushing the word
									‘unit’ somewhat. I have my doubts as to the usefulness of unit
									testing, as opposed to just automated testing. What is the
									largest thing that you can legitimately call a unit? Is it a
									method, an object, a package, an entire project?</p>
								<p>I tend to write tests first only when I expect buggy
									code. This is usually when I find the problem to be solved
									difficult to understand. I work on a network simulator, and
									sometimes my boss comes up with requirements that I’m not too
									sure about. He is accustomed to doing subnet calculations in
									his head, I’m not, so sometimes his requirements confuse me.
									Writing the test first, sometimes even in his presence, can
									help me there. Perhaps my approach is actually an antipattern –
									Selective Tester. What do you think?</p>
								<p>I also write tests when I find bugs. This is proving
									difficult with Swing-related code, especially as I try to run
									my tests in ‘headless’ mode. I’ve (temporarily) broken my
									application by wrapping JFrame and JDialog so that I can
									instantiate real versions in the real app and dummy versions in
									tests. I know that this is because of the behaviour-dependent
									design of Swing, but either way, it’s annoying.</p>
								<p>Cheers.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=274#respond"
										onclick="return addComment.moveForm(&quot;div-comment-274&quot;, &quot;274&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-275">
							<div id="div-comment-275" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/dd08bc92b02d3c676e67cb818ce19e05"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.agical.com/"
											rel="external nofollow" class="url">Joakim Ohlrogge</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-275">
										November 5, 2006 at 11:28 am</a>
								</div>

								<p>
									I didn’t recognise greedy leftovers as something I said. I
									think The sloppy worker could have that effect but I can’t take
									credit for Gredy worker <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley">
								</p>
								<p>Here are the ones I came up with on the list.</p>
								<p>
									The overly stateful – A test that uses the filesystem
									unneccesarily.<br> For instance storing a file and reding
										it with a FileReader when a<br> StringReader would
											suffice to prove your point. 
								</p>
								<p>Which leads me to:</p>
								<p>
									The sloppy worker – A test that creates persistent resources
									but<br> doesn’t clean after itself. 
								</p>
								<p>The mime: Developing the code first and then repeating
									what the code does with expectations mocks. This makes the code
									drive the tests rather than the other way around. Usually leads
									to excessive setup and poorly named tests that are hard to see
									what they do.</p>
								<p>
									Inversion of design aka Creative setup: This is closely related
									to<br> James excessive setup anti-pattern and I’ve seen it
										with mocks.<br> Instead of redesigning the subject under
											test so that it doesn’t<br> require excessive setup; the
												testcase is redesigned so that it is<br> easier to
													create a complex setup. 
								</p>
								<p>This one is more about people behviour but can be a cause
									of interesting petters:</p>
								<p>
									The bounty hunter: Making sure to exercise all code in order to
									reach<br> the required level of X% testcoverage. But not
										really testing<br> anything. 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=275#respond"
										onclick="return addComment.moveForm(&quot;div-comment-275&quot;, &quot;275&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor odd alt thread-odd thread-alt depth-1"
							id="comment-276">
							<div id="div-comment-276" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-276">
										November 5, 2006 at 3:45 pm</a>
								</div>

								<p>
									Joakim: true… even though I did draw some of it from what you
									mentioned about sloppy worker. Thought I’d at least give
									partial credit since you mentioned some of the elements of it
									on the list. <img
										src="./TDD Anti-Patterns   James Carr_files/icon_wink.gif"
										alt=";)" class="wp-smiley">
								</p>
								<p>Another amusing one someone brought up that was
									summarized in one statement:</p>
								<p>
									Old and Busted: Test Driven Development.<br> The new
										hotness: Test Driven Unit Testing. 
								</p>
								<p>
									I have yet to see a unit test for a unit test yet, however. <img
										src="./TDD Anti-Patterns   James Carr_files/icon_sad.gif"
										alt=":(" class="wp-smiley">
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=276#respond"
										onclick="return addComment.moveForm(&quot;div-comment-276&quot;, &quot;276&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-277">
							<div id="div-comment-277" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://tzara.wordpress.com/2006/11/06/jot-down/"
										rel="external nofollow" class="url">jot down « re-thinking</a>
									</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-277">
										November 6, 2006 at 3:12 am</a>
								</div>

								<p>[...] James Carr Â» Blog Archive Â» TDD Anti-Patterns
									Posted by tzara Filed in blah blah [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=277#respond"
										onclick="return addComment.moveForm(&quot;div-comment-277&quot;, &quot;277&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-457">
							<div id="div-comment-457" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/d8e25c4092bf06621e894a0dee57c4b6"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blogs.msdn.com/agilmonkey"
											rel="external nofollow" class="url">casper</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-457">
										November 28, 2006 at 3:26 am</a>
								</div>

								<p>
									A very enlightening and amusing post <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley"> Could you clarify ‘The
										Secret Catcher’ a bit? I’m not sure exactly what you mean by
										it, but certainly there are valid NUnit tests that have no
										Assert() but rather an [ExpectedException] attribute. 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=457#respond"
										onclick="return addComment.moveForm(&quot;div-comment-457&quot;, &quot;457&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-458">
							<div id="div-comment-458" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blogs.msdn.com/agilemonkey/archive/2006/11/28/tdd-anti-patterns.aspx"
										rel="external nofollow" class="url">Adventures of an agile
											developer in a not-quite agile world : TDD Anti-Patterns</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-458">
										November 28, 2006 at 3:26 am</a>
								</div>

								<p>[...] James Carr has an amusing and enlightening post on
									TDD Anti-Patterns. They encompass all the key points I’ve
									written about and add a few more as well. I’m not completely
									sure if I understand what he means by ‘The Secret Catcher’,
									because it’s perfectly normal (and valid) to write unit tests
									with NUnit that have no Assert, but rather an
									[ExpectedException] attribute. Posted: Tuesday, November 28,
									2006 7:26 AM by casper [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=458#respond"
										onclick="return addComment.moveForm(&quot;div-comment-458&quot;, &quot;458&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor odd alt thread-odd thread-alt depth-1"
							id="comment-463">
							<div id="div-comment-463" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-463">
										November 28, 2006 at 2:36 pm</a>
								</div>

								<p>Casper,</p>
								<p>Yeah, there’s been a bit of debate over the Secret
									catcher on the TDD list… after all, it is valid if you are
									testing for an exception to be thrown. The Secret Catcher is
									meant to be the case where you do not expect the exception to
									be thrown, but rather just rely on the framework to fail when
									it encounters the exception.</p>
								<p>Essentially, in java code it might look something like
									this:</p>
								<p>
									public void testSomething(){<br>
										foo.makeCallThatCanThrowTwentyDifferentExceptions();<br>
											} 
								</p>
								<p>
									I’m sure you get the picture. <img
										src="./TDD Anti-Patterns   James Carr_files/icon_wink.gif"
										alt=";)" class="wp-smiley">
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=463#respond"
										onclick="return addComment.moveForm(&quot;div-comment-463&quot;, &quot;463&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-470">
							<div id="div-comment-470" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f70255c3487ef119ce6928842d5c4c6b"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.chaliy.com/"
											rel="external nofollow" class="url">Mike Chaliy</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-470">
										November 29, 2006 at 6:28 am</a>
								</div>

								<p>
									Another anti-pattern with another crazy name <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley">
								</p>
								<p>The Initalization Hero</p>
								<p>Occured when every test method makes initialization of
									the target. Must be refactored in the factory method.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=470#respond"
										onclick="return addComment.moveForm(&quot;div-comment-470&quot;, &quot;470&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-477">
							<div id="div-comment-477" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/d8e25c4092bf06621e894a0dee57c4b6"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blogs.msdn.com/agilmonkey"
											rel="external nofollow" class="url">casper</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-477">
										November 30, 2006 at 3:12 am</a>
								</div>

								<p>
									James – thanks for clearing that up. I’m in total agreement.
									Again, very well-written post <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley">
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=477#respond"
										onclick="return addComment.moveForm(&quot;div-comment-477&quot;, &quot;477&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-1281">
							<div id="div-comment-1281" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.kds.com.ua/wp/2006/12/27/why-automated-tests/"
										rel="external nofollow" class="url">KDS Software Group »
											Software development basics: where test-driven development is
											from</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-1281">
										December 27, 2006 at 9:56 am</a>
								</div>

								<p>[...] How test driven development can go wrong [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=1281#respond"
										onclick="return addComment.moveForm(&quot;div-comment-1281&quot;, &quot;1281&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-1289">
							<div id="div-comment-1289" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/dd7bd78b3fc420596a8c6b0dd0849102"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">Srihari Y.</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-1289">
										December 27, 2006 at 12:41 pm</a>
								</div>

								<p>Am currently still a novice with TDD but one i’ve usually
									encountered in my initial steps is this :</p>
								<p>
									- Write testcases which mock interfaces/classes and use
									“setters” to put the mocked objects to the “under test” class
									and have tests that test the functionality correctly.<br>
										- But finally end up writing code in constructor of that
										“under test” class without tests or with tests which just test
										“initialisation” of the real world equivalents of the “mocked”
										interfaces/classes. 
								</p>
								<p>
									So would this or some inherent assumption of mine (in above),
									qualify for a TDD antipattern? <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley">
								</p>
								<p>Have been actually wondering what would be the best way
									to avoid this though? any suggestions?</p>
								<p>
									If really there is something, then for naming.. well.. seems
									close to Mockery but actually bit different.. Cannot come up
									with any good names.. How about “Forget the constructor”?
									(ahh.. forget it.. sorry cant be creative enough! <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley"> ) 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=1289#respond"
										onclick="return addComment.moveForm(&quot;div-comment-1289&quot;, &quot;1289&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-1319">
							<div id="div-comment-1319" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.developers.org.ua/archives/akhavr/2006/12/28/osonvy-rozrobky-tdd/"
										rel="external nofollow" class="url">ÐžÑÐ½Ð¾Ð²Ð¸
											Ñ€Ð¾Ð·Ñ€Ð¾Ð±ÐºÐ¸ ÐŸÐ—: Ð¼ÐµÑ‚Ð° + Ð´ÐµÐºÐ¾Ð¼Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ =
											TDD « Ð±Ð»Ð¾Ð³ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÐ¾Ð² « developers.org.ua</a>
									</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-1319">
										December 28, 2006 at 7:19 am</a>
								</div>

								<p>[...] Ð¯Ðº Ñ€Ð¾Ð·Ñ€Ð¾Ð±ÐºÐ°, ÐºÐµÑ€Ð¾Ð²Ð°Ð½Ð°
									Ñ‚ÐµÑÑ‚Ð°Ð¼Ð¸, Ð¼Ð¾Ð¶Ðµ Ð¿Ñ–Ñ‚Ð¸ Ñ…Ð¸Ð±Ð½Ð¸Ð¼ ÑˆÐ»ÑÑ…Ð¾Ð¼
									[...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=1319#respond"
										onclick="return addComment.moveForm(&quot;div-comment-1319&quot;, &quot;1319&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-2367">
							<div id="div-comment-2367" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://laribee.com/blog/2007/01/24/strategies-for-structuring-unit-tests/"
										rel="external nofollow" class="url">the ‘bee log /
											Strategies for Structuring Unit Tests</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-2367">
										January 24, 2007 at 1:02 am</a>
								</div>

								<p>[...] Some time ago I read a&nbsp;good article on some
									common TDD anti-patterns by James Carr (which lives right
									here.)&nbsp;Great, yeah, those are some anti-patterns. So what
									about patterns? [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=2367#respond"
										onclick="return addComment.moveForm(&quot;div-comment-2367&quot;, &quot;2367&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-3969">
							<div id="div-comment-3969" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/dd8170545fe1afd0c9b4b7894c9b66f5"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.trajano.net/"
											rel="external nofollow" class="url">Archimedes Trajano</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-3969">
										February 16, 2007 at 9:49 am</a>
								</div>

								<p>I am not sure if the “Giant setup” is really an
									anti-pattern. Some test cases do require a big setup routine
									because it requires you to set up a lot of components before
									doing anything.</p>
								<p>
									e.g. in a case management system<br> You may have to
										create the person (there are many mandatory fields for the
										person to be valid e.g. name, birth date, gender)<br>
											Then you have to create the address for the person<br>
												Then you have to create the case with the person associated
										
								</p>
								<p>… at this point you can do operations to the case…</p>
								<p>As you can see the setup is quite big. The teardown is
									usually simple if we set up the unit test to rollback all the
									changes.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=3969#respond"
										onclick="return addComment.moveForm(&quot;div-comment-3969&quot;, &quot;3969&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-4057">
							<div id="div-comment-4057" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://community.vuscode.com/archive/2007/02/17/james-carr-blog-archive-tdd-anti-patterns.aspx"
										rel="external nofollow" class="url">VusCode - Coding
											dreams since 1998! : James Carr » Blog Archive » TDD
											Anti-Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-4057">
										February 17, 2007 at 1:34 pm</a>
								</div>

								<p>[...] Link to James Carr Â» Blog Archive Â» TDD
									Anti-Patterns [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=4057#respond"
										onclick="return addComment.moveForm(&quot;div-comment-4057&quot;, &quot;4057&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-4058">
							<div id="div-comment-4058" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/1deadb1bbbc581295f1a8e1b3826b7e5"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a
											href="http://community.vuscode.com/archive/2007/02/17/james-carr-blog-archive-tdd-anti-patterns.aspx"
											rel="external nofollow" class="url">Nikola malovic</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-4058">
										February 17, 2007 at 1:41 pm</a>
								</div>

								<p>James Car gathered an excellent collection of TDD anti
									patterns which is HAVE TO for every TDD oriented developer</p>
								<p>
									Bookmark it at once! <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley">
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=4058#respond"
										onclick="return addComment.moveForm(&quot;div-comment-4058&quot;, &quot;4058&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-4481">
							<div id="div-comment-4481" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/51ea5e2a4805c97d825e8ba8a99f26e4"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.obtiva.com/"
											rel="external nofollow" class="url">Andy Maleh</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-4481">
										February 21, 2007 at 12:22 pm</a>
								</div>

								<p>The Giant helps me often in detecting code smells.</p>
								<p>Very interesting anti-patterns. Love the naming. Thanks
									for cataloging them.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=4481#respond"
										onclick="return addComment.moveForm(&quot;div-comment-4481&quot;, &quot;4481&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-10159">
							<div id="div-comment-10159" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://codebetter.com/blogs/jean-paul_boodhoo/archive/2007/04/08/TDD-Anti_2D00_Patterns.aspx"
										rel="external nofollow" class="url">Jean-Paul S. Boodhoo :
											TDD Anti-Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-10159">
										April 8, 2007 at 11:58 pm</a>
								</div>

								<p>[...] This was published a while ago, but it is an
									awesome read. Made me laugh, and I just read it for the first
									time last week!! [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=10159#respond"
										onclick="return addComment.moveForm(&quot;div-comment-10159&quot;, &quot;10159&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-10258">
							<div id="div-comment-10258" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/88bd0d2e36b770e6b8cc863a67c543e8"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.leftturnsolutions.com/"
											rel="external nofollow" class="url">Jon Herron</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-10258">
										April 10, 2007 at 10:21 am</a>
								</div>

								<p>Excellent article. Unfortantually I have been bit by The
									Mockery one too many times, now at least I have a good name to
									refer to it by.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=10258#respond"
										onclick="return addComment.moveForm(&quot;div-comment-10258&quot;, &quot;10258&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-10260">
							<div id="div-comment-10260" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/48b4dd4215a75d36d97527d6fe2459ca"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a
											href="http://www.cwk-technologies.co.uk/blog/2007/04/10/How+I+Avoid+TDD+Antipatterns.aspx"
											rel="external nofollow" class="url">Andrew Macdonald</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-10260">
										April 10, 2007 at 11:03 am</a>
								</div>

								<p>I bumped into this article via JP Boodhoo’s blog the
									other day (I know the original article has been out in the wild
									for a while now).</p>
								<p>Anyhow, as I read through the article, realisation hit
									that I subconsciously follow a set of practices that help avoid
									the aforementioned anti-patterns ….</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=10260#respond"
										onclick="return addComment.moveForm(&quot;div-comment-10260&quot;, &quot;10260&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-10350">
							<div id="div-comment-10350" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/3c4fe77ab5bf8851c0dd7da1b3d3960c"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://icelava.net/"
											rel="external nofollow" class="url">Aaron Seet</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-10350">
										April 12, 2007 at 8:32 am</a>
								</div>

								<p>The worst anti-pattern of them all:</p>
								<p>The Void</p>
								<p>Not a single test to confirm the system works.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=10350#respond"
										onclick="return addComment.moveForm(&quot;div-comment-10350&quot;, &quot;10350&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-13422">
							<div id="div-comment-13422" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/473b13868b1daec54de8d4b4c1a6a8dc"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a
											href="http://jupitermoonbeam.blogspot.com/"
											rel="external nofollow" class="url">jupitermoonbeam</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-13422">
										April 30, 2007 at 4:16 am</a>
								</div>

								<p>
									The Mad Hatter’s Tea Party.<br> This is one of those test
										cases that seems to test a whole party of objects without
										testing any specific one. This is often found in poorly
										designed systems that cannot use mocks or stubs and as a
										result end up testing the state and behaviour of every
										peripheral object in order to ensure the object under test is
										working correctly. 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=13422#respond"
										onclick="return addComment.moveForm(&quot;div-comment-13422&quot;, &quot;13422&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor odd alt thread-odd thread-alt depth-1"
							id="comment-13493">
							<div id="div-comment-13493" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-13493">
										April 30, 2007 at 8:36 am</a>
								</div>

								<p>
									Hi jupitermoonbeam,<br> Yes… that’s one of the most
										annoying test smells I’ve seen.. you wind up with a lot of
										methods that test other objects that the object under test
										uses, and the result is quite often along the lines of “The
										Giant.” 
								</p>
								<p>Thankfully the strategy for refactoring is simple…
									isolate methods that are testing other objects and extract them
									out to their own unit tests, and provide mocks/stubs for access
									to those objects during test execution.</p>
								<p>I’ve also found this to be a result of a code smell as
									well, particularly a God Object or one that has too many
									dependencies which could be isolated.</p>
								<p>
									Cheers,<br> James 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=13493#respond"
										onclick="return addComment.moveForm(&quot;div-comment-13493&quot;, &quot;13493&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-13571">
							<div id="div-comment-13571" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.james-carr.org/?p=70"
										rel="external nofollow" class="url">James Carr » Blog
											Archive » TDD Anti-Patterns: The Wiki!</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-13571">
										April 30, 2007 at 2:06 pm</a>
								</div>

								<p>[...] There’s one post and one post only on my blog that
									gets the largest amount of attention: the TDD Anti-Patterns
									entry. This was an entry to kind of precede an article I had
									prepared for the IEEE special issue on TDD, however that
									article won’t materialize (mainly due to last minute writing on
									my part). [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=13571#respond"
										onclick="return addComment.moveForm(&quot;div-comment-13571&quot;, &quot;13571&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-14606">
							<div id="div-comment-14606" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/e7ca36bb9d997862625392758346c5b0"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.google.com/"
											rel="external nofollow" class="url">LolitochkaBC</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-14606">
										May 10, 2007 at 7:58 am</a>
								</div>

								<p>ÐÐ°Ð°Ð½ÑƒÐºÐ°Ñ€ÐµÐ±ÑÑ‚ÐºÐ¸ Ð³Ð¾Ð»Ð¾ÑÑƒÐµÐ¼!!!</p>
								<p>ÐŸÑ€Ð¸Ð·Ð½Ð°Ð²Ð°Ð¹Ñ‚ÐµÑÑŒ Ð¿Ñ€Ð¾ÐºÐ°Ð·Ð½Ð¸ÐºÐ¸ Ð¸
									Ð²Ð»Ð°Ð´ÐµÐ»ÑŒÑ†Ñ‹ ÑÐ°Ð¹Ñ‚Ð° blog.james-carr.org ))))</p>
								<p>Ð§Ð¢Ðž Ð²Ñ‹ Ð±Ð´ÐµÑ‚ÐµÐµ Ð´ÐµÐ»Ð°Ñ‚ÑŒ ÑÑ‚Ð¸Ð¼
									Ð»ÐµÑ‚Ð¾Ð¼?!</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=14606#respond"
										onclick="return addComment.moveForm(&quot;div-comment-14606&quot;, &quot;14606&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor even thread-even depth-1"
							id="comment-14766">
							<div id="div-comment-14766" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-14766">
										May 10, 2007 at 6:35 pm</a>
								</div>

								<p>
									I ran your comment through babelfish, and I got:<br> Of
										aaanukarebyatki we vote!!! Acknowledge mischief-makers the
										owners of site blog.james-carr.org)))) THAT you bdeteye to
										make with this summer?! 
								</p>
								<p>
									Thanks… I guess. <img
										src="./TDD Anti-Patterns   James Carr_files/icon_wink.gif"
										alt=";)" class="wp-smiley">
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=14766#respond"
										onclick="return addComment.moveForm(&quot;div-comment-14766&quot;, &quot;14766&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-20600">
							<div id="div-comment-20600" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/1ecf79c764b27d423ccafbaeb4ee42fb"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">Bill Smith</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-20600">
										June 6, 2007 at 8:31 am</a>
								</div>

								<p>How about the “Roll the Dice” test? Rather than actually
									figuring out where the software’s boundary conditions are, the
									test uses randomly generated data for parameters. Consequently,
									the test passes one time and fails the next.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=20600#respond"
										onclick="return addComment.moveForm(&quot;div-comment-20600&quot;, &quot;20600&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-21681">
							<div id="div-comment-21681" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.studiowhiz.com/?p=9527"
										rel="external nofollow" class="url">Studiowhiz.com » Blog
											Archive » On Unit Testing and TDD</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-21681">
										June 8, 2007 at 3:26 am</a>
								</div>

								<p>[...] Just read a couple of interesting posts. One
									provides a set of anti=patterns for TDD and the other looks at
									how best to Unit Test the db layer. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=21681#respond"
										onclick="return addComment.moveForm(&quot;div-comment-21681&quot;, &quot;21681&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-21718">
							<div id="div-comment-21718" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.upayasoftware.com/2007/06/07/worth-reading-testing-antipatterns/"
										rel="external nofollow" class="url">Worth Resting -
											Testing Anti-patterns » Skillful Software</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-21718">
										June 8, 2007 at 6:37 am</a>
								</div>

								<p>[...] Thanks to Frank Kelly for pointing out James Carr’s
									great list of testing anti-patterns – things to really avoid
									when writing automated test cases. This is definitely a page
									worth reading. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=21718#respond"
										onclick="return addComment.moveForm(&quot;div-comment-21718&quot;, &quot;21718&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-22424">
							<div id="div-comment-22424" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/a0b710c6543f2a6ed0c3971d690355c9"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a
											href="http://blog.softwarearchitecture.com/"
											rel="external nofollow" class="url">Brian Sondergaard</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-22424">
										June 11, 2007 at 8:16 pm</a>
								</div>

								<p>Good work James. I’ll be interested in seeing the final
									article and the pattern descriptions. You have an important set
									of principles captured here. As is typically the case at this
									stage of development, the current list may be lacking in
									orthogonality, but I’m sure that will get fleshed out.</p>
								<p>
									I picked up on a couple of your anti-patterns to talk about the
									value of tests as documentation at <a
										href="http://blog.softwarearchitecture.com/2007/06/test-driven-knowledge-management.html"
										rel="nofollow">http://blog.softwarearchitecture.com/2007/06/test-driven-knowledge-management.html</a>.
								</p>
								<p>Keep it up.</p>
								<p>
									Brian<br> <a href="http://blog.softwarearchitecture.com/"
										rel="nofollow">http://blog.softwarearchitecture.com</a>
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=22424#respond"
										onclick="return addComment.moveForm(&quot;div-comment-22424&quot;, &quot;22424&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-23660">
							<div id="div-comment-23660" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.pommetab.com/2007/06/20/testing-anti-patterns/"
										rel="external nofollow" class="url">Pomme::TAB » Blog
											Archive » Testing Anti-Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-23660">
										June 21, 2007 at 4:25 pm</a>
								</div>

								<p>[...] “Somehow I missed James Carr’s TDD Anti-Patterns
									late last year. I’ve perpetuated almost every one at least
									once. If you’re new to testing, browse the list, think about
									each entry, and watch for it in your own code.” [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=23660#respond"
										onclick="return addComment.moveForm(&quot;div-comment-23660&quot;, &quot;23660&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-25529">
							<div id="div-comment-25529" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/7d63a0ba4d1e79b105db00b4ca8f0df6"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">omo</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-25529">
										July 8, 2007 at 1:54 am</a>
								</div>

								<p>
									thanks for your work!<br> i post a Japanese translation
										here:<br> <a
											href="http://www.hyuki.com/yukiwiki/wiki.cgi?TddAntiPatterns"
											rel="nofollow">http://www.hyuki.com/yukiwiki/wiki.cgi?TddAntiPatterns</a>
								</p>
								<p>if you have any trouble with this, please let me know.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=25529#respond"
										onclick="return addComment.moveForm(&quot;div-comment-25529&quot;, &quot;25529&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-28015">
							<div id="div-comment-28015" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/480201be6b1f33f9326e28040ad47a8d"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.kevingabbert.com/"
											rel="external nofollow" class="url">Kevin Gabbert</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-28015">
										August 2, 2007 at 11:55 am</a>
								</div>

								<p>It would be good to see some kind of engine that could
									review a bunch of tests and classify them into some of these
									categories.</p>
								<p>“Hey Dude, 35% of your tests suck, here is why..”</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=28015#respond"
										onclick="return addComment.moveForm(&quot;div-comment-28015&quot;, &quot;28015&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-28321">
							<div id="div-comment-28321" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/40f4650a02f3a4430823a2e49ebaeb7b"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a
											href="http://bruno-orsier.developpez.com/"
											rel="external nofollow" class="url">Bruno Orsier</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-28321">
										August 5, 2007 at 8:38 am</a>
								</div>

								<p>Hello James, thanks for publishing this list. Here is a
									french translation:</p>
								<p>
									<a
										href="http://bruno-orsier.developpez.com/anti-patterns/james-carr/"
										rel="nofollow">http://bruno-orsier.developpez.com/anti-patterns/james-carr/</a>
								</p>
								<p>Best regards</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=28321#respond"
										onclick="return addComment.moveForm(&quot;div-comment-28321&quot;, &quot;28321&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-29264">
							<div id="div-comment-29264" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/5f112abaca84fc0a7d9bd8220a4ffcaa"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">D Lawson</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-29264">
										August 17, 2007 at 10:47 am</a>
								</div>

								<p>
									excellent list – with some amusing names <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":-)" class="wp-smiley">
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=29264#respond"
										onclick="return addComment.moveForm(&quot;div-comment-29264&quot;, &quot;29264&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-32001">
							<div id="div-comment-32001" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.napyfab.com/197/links-for-2007-09-17/"
										rel="external nofollow" class="url">napyfab:blog» Blog
											Archive » links for 2007-09-17</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-32001">
										September 17, 2007 at 7:41 pm</a>
								</div>

								<p>[...] James Carr Â» Blog Archive Â» TDD Anti-Patterns
									(tags: tdd testing programming pattern agile antipattern
									development architecture) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=32001#respond"
										onclick="return addComment.moveForm(&quot;div-comment-32001&quot;, &quot;32001&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-33118">
							<div id="div-comment-33118" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.vuscode.com/malovicn/archive/2007/02/17/james-carr-blog-archive-tdd-anti-patterns.aspx"
										rel="external nofollow" class="url">James Carr » Blog
											Archive » TDD Anti-Patterns - VusCode - Coding dreams since
											1998!</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-33118">
										October 1, 2007 at 4:55 am</a>
								</div>

								<p>[...] Link to James Carr Â» Blog Archive Â» TDD
									Anti-Patterns [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=33118#respond"
										onclick="return addComment.moveForm(&quot;div-comment-33118&quot;, &quot;33118&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-34092">
							<div id="div-comment-34092" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/c4ee7f531c96c223285d1034f9dd99dc"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.david-dylan.co.uk/david"
											rel="external nofollow" class="url">DavidDylan</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-34092">
										October 11, 2007 at 6:24 am</a>
								</div>

								<p>A very useful list – and one that I think would be useful
									to a much wider audience than just TDD practitioners. Do you
									think many of these anti-patterns are equally likely to show up
									in tests written after the code?</p>
								<p>I appreciate that, if you were originally targetting the
									IEEE Software TDD edition, it made sense to include TDD in the
									title. But now that your list seems to have a life of its own,
									perhaps you should consider renaming it: “unit test
									anti-patterns”.</p>
								<p>In fact I don’t even think they’re even limited to unit
									tests – maybe “xUnit test anti-patterns” to complement the
									recent book (which I haven’t read, yet) called xUnit test
									patterns would be the best name. I think “automated test
									patterns” might be going a bit too far, as that takes you too
									far into the domain of tester/scripters rather than developers
									writing tests.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=34092#respond"
										onclick="return addComment.moveForm(&quot;div-comment-34092&quot;, &quot;34092&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor odd alt thread-odd thread-alt depth-1"
							id="comment-34100">
							<div id="div-comment-34100" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-34100">
										October 11, 2007 at 9:11 am</a>
								</div>

								<p>Indeed it has! It’s even been translated to 4 different
									languages now, so I’m starting to think maybe it’s time to dust
									this off and see what can be improved on it.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=34100#respond"
										onclick="return addComment.moveForm(&quot;div-comment-34100&quot;, &quot;34100&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-35200">
							<div id="div-comment-35200" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/5a7ebfaa52f6fcadc6b1480d08b85300"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blogs.it-coder.com/"
											rel="external nofollow" class="url">Ivan Atanasov</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-35200">
										October 22, 2007 at 11:27 am</a>
								</div>

								<p>Excellent list, because we must know “What is wrong?”,
									before starts writing unit testing.</p>
								<p>Best Regards</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=35200#respond"
										onclick="return addComment.moveForm(&quot;div-comment-35200&quot;, &quot;35200&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-36941">
							<div id="div-comment-36941" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a href="http://codesthetics.com/?p=3"
										rel="external nofollow" class="url">Codesthetics » Blog
											Archive » TDD ain’t no snowboarding</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-36941">
										November 4, 2007 at 4:22 pm</a>
								</div>

								<p>[...] And that’s all. Everything came (and keeps coming)
									naturally: good basic principles like isolation, self-contained
									tests, dependency injection, and so on. There is no steep
									learning curve, there is no big initial investment (try buying
									a full set of snowboarding equipment to discover shortly after
									that you’re not going to use it…), there is no need for a
									professional instructor other than those good guys that already
									inspired you in the beginning. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=36941#respond"
										onclick="return addComment.moveForm(&quot;div-comment-36941&quot;, &quot;36941&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-37623">
							<div id="div-comment-37623" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/55b1f17efe6eb03b1b1f0a52361171d3"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.ademiller.com/tech/"
											rel="external nofollow" class="url">Ade Miller</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-37623">
										November 9, 2007 at 11:20 am</a>
								</div>

								<p>Great list. This was just what I was looking for to
									describe some anti-patterns my team has been inadventently
									using.</p>
								<p>The Greedy Catcher – The XUnit.net framework supports
									much better exception catching than NUnit or MSTest.</p>
								<p>A variant of excessive setup and giant is complex base
									classes. Tests classes derive from a hierachy of base classes
									making the actual test very hard to read. Lots of people fall
									into this trap when first creating unit tests in an attempt to
									follow the DRY principle 100%. With tests sometimes readability
									is better than no duplication.</p>
								<p>Thanks,</p>
								<p>Ade</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=37623#respond"
										onclick="return addComment.moveForm(&quot;div-comment-37623&quot;, &quot;37623&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-37675">
							<div id="div-comment-37675" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.ademiller.com/blogs/tech/2007/11/tdd-anti-pattern-inherited-test/"
										rel="external nofollow" class="url">#2872 » Blog Archive »
											TDD anti-pattern “inherited or hidden test”</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-37675">
										November 9, 2007 at 10:11 pm</a>
								</div>

								<p>[...] This post actually started out as my TDD and DSLs
									post but I got sidetracked into trying to describe an
									anti-pattern I’d noticed in a some of the unit tests we wrote
									as part of Service Factory: Modeling Edition. I came across
									James Carr’s excellent TDD anti-patterns postÂ&nbsp;which got
									me thinking about this new variation on one of his
									anti-patterns.Â&nbsp; [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=37675#respond"
										onclick="return addComment.moveForm(&quot;div-comment-37675&quot;, &quot;37675&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-37676">
							<div id="div-comment-37676" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/55b1f17efe6eb03b1b1f0a52361171d3"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.ademiller.com/tech/"
											rel="external nofollow" class="url">Ade Miller</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-37676">
										November 9, 2007 at 10:12 pm</a>
								</div>

								<p>I blogged about another anti-pattern I’ve seen used a
									fair bit. If you’re still collecting here it is:</p>
								<p>
									<a
										href="http://www.ademiller.com/blogs/tech/2007/11/tdd-anti-pattern-inherited-test/"
										rel="nofollow">http://www.ademiller.com/blogs/tech/2007/11/tdd-anti-pattern-inherited-test/</a>
								</p>
								<p>Cheers,</p>
								<p>Ade</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=37676#respond"
										onclick="return addComment.moveForm(&quot;div-comment-37676&quot;, &quot;37676&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-41410">
							<div id="div-comment-41410" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://ideesign.com.br/pedro/?p=13"
										rel="external nofollow" class="url">Motivations to adopt
											Behavior Driven Development | Yet Another Programmer Bitching</a>
									</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-41410">
										December 9, 2007 at 6:32 pm</a>
								</div>

								<p>[...] As a bonus, I’m finally writing tests before the
									code. Because, really, TDD just doesn’t work for me and I
									always end with crappy designs. And no, I’m not going to
									memorize TDD ANTI-PATTERNS (there are 22 of them!) to safely
									adopt the practice. I’d rather start with tests that don’t
									impact on design, and BDD allows me to do that. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=41410#respond"
										onclick="return addComment.moveForm(&quot;div-comment-41410&quot;, &quot;41410&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-42422">
							<div id="div-comment-42422" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a href="http://ianjoyce.org/?p=76"
										rel="external nofollow" class="url">Ian Joyce » Blog
											Archive » links for 2007-06-20</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-42422">
										December 18, 2007 at 4:20 pm</a>
								</div>

								<p>[...] James Carr Â» Blog Archive Â» TDD Anti-Patterns
									(tags: patterns antipatterns testing) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=42422#respond"
										onclick="return addComment.moveForm(&quot;div-comment-42422&quot;, &quot;42422&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-46487">
							<div id="div-comment-46487" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.alvinashcraft.com/2008/01/20/daily-bits-january-20-2008/"
										rel="external nofollow" class="url">» Daily Bits - January
											20, 2008 Alvin Ashcraft’s Daily Geek Bits: Daily links plus
											random ramblings about development, gadgets and raising
											rugrats.</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46487">
										January 20, 2008 at 11:10 am</a>
								</div>

								<p>[...] TDD Anti-Patterns (James Carr) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46487#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46487&quot;, &quot;46487&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-46546">
							<div id="div-comment-46546" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.mouseoverstudio.com/blog/?p=54"
										rel="external nofollow" class="url">links for 2008-01-21</a> </cite>
									<span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46546">
										January 20, 2008 at 9:25 pm</a>
								</div>

								<p>[...] James Carr Â» Blog Archive Â» TDD Anti-Patterns
									(tags: tdd antipatterns testing Patterns programming Agile
									antipattern) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46546#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46546&quot;, &quot;46546&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-46636">
							<div id="div-comment-46636" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.tieredsolutions.com/?p=374"
										rel="external nofollow" class="url">The DaxMindMapper
											Reloaded » TDD Anti-Patterns .. as TDD matures new lessons
											are learnt. - .NET Software Development</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46636">
										January 21, 2008 at 4:57 pm</a>
								</div>

								<p>[...] James Carr’s TDD Anti-Patterns [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46636#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46636&quot;, &quot;46636&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-46654">
							<div id="div-comment-46654" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://vp.blog.br/2008/01/21/anti-padroes-de-tdd/"
										rel="external nofollow" class="url">:: 2web :: » Blog
											Archive » Anti-padrÃµes de TDD</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46654">
										January 21, 2008 at 9:26 pm</a>
								</div>

								<p>[...] James Carr fez um excelente (e divertido) trabalho
									ao levantar anti-padrÃµes – prÃ¡ticas RUINS comumente
									encontradas nos projetos – em projetos TDD. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46654#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46654&quot;, &quot;46654&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-46671">
							<div id="div-comment-46671" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.chinhdo.com/20080121/finds-of-the-week-jan-20-2008/"
										rel="external nofollow" class="url">Finds of the Week -
											Jan 20, 2008 » Chinh Do</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46671">
										January 22, 2008 at 12:05 am</a>
								</div>

								<p>[...] James Carr’s TDD Anti-Patterns is a fun and
									enlightening read on of Test Driven Development. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46671#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46671&quot;, &quot;46671&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-46825">
							<div id="div-comment-46825" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://afongen.com/blog/2008/01/22/links-for-2008-01-23/"
										rel="external nofollow" class="url">afongen » links for
											2008-01-23</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46825">
										January 23, 2008 at 1:24 am</a>
								</div>

								<p>[...] TDD Anti-Patterns (tags: tdd) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46825#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46825&quot;, &quot;46825&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-46833">
							<div id="div-comment-46833" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/4db19af995a832285185048d10eff5d8"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.geekdaily.org/"
											rel="external nofollow" class="url">Jim</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46833">
										January 23, 2008 at 3:10 am</a>
								</div>

								<p>Wonderful post! I’m glad it’s resurfaced for those of us
									who missed it the first time around. The Web Surfer and The
									Nitpicker are two I keep seeing repeatedly, as well as
									Excessive Setup which I’ve always thought of as Much Ado About
									Nothing.</p>
								<p>Thanks again!</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46833#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46833&quot;, &quot;46833&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-46872">
							<div id="div-comment-46872" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/c1fa20384262dd46f74b9b6f94448b78"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blogs.adobe.com/tomsugden/"
											rel="external nofollow" class="url">Tom Sugden</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-46872">
										January 23, 2008 at 9:05 am</a>
								</div>

								<p>Here is another simple anti-pattern that I think has been
									missed: The Denier or Contradiction. This is a test case where
									the message parameter of an assertion describes a success
									rather than a failure. If the test case fails, the test runner
									will display a contradictory failure message suggesting the
									test was successful.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=46872#respond"
										onclick="return addComment.moveForm(&quot;div-comment-46872&quot;, &quot;46872&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-47093">
							<div id="div-comment-47093" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/af941460e236579dcb01ee61051e315d"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.codebureau.com/blog"
											rel="external nofollow" class="url">Matt</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-47093">
										January 24, 2008 at 9:51 pm</a>
								</div>

								<p>Love the post..</p>
								<p>How about the ‘Stealth Bomber’. This is probably an
									extreme extension of the Hidden Dependency. I’ve seen a few
									tests that would simply ‘never’ fail when run interactively or
									debugged, or during a full test run in the day. When a supposed
									‘fix’ was implemented it would even fool the developer into
									feeling pleased with themselves by passing for a day or two
									before bombing again in an overnight run. The logic wouldn’t
									show anything untoward, and it continued to bomb every few days
									without warning or trace of ‘why’. More than likely a group of
									no-no’s of execution sequence-dependent, date/time-dependent,
									database-dependent, context-dependent etc.</p>
								<p>There’s probably another variation – maybe the ‘Blue
									Moon’. A test that’s specifically dependent on the current
									date, and fails as a result of things like public holidays,
									leap years, weekends, 5 week months etc. This is again guilty
									of not setting up its own data.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=47093#respond"
										onclick="return addComment.moveForm(&quot;div-comment-47093&quot;, &quot;47093&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-47198">
							<div id="div-comment-47198" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/a869694df68528dd2af08e880dea83de"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">Kevin</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-47198">
										January 25, 2008 at 3:08 pm</a>
								</div>

								<p>Locale Evangelist – We work with an offshore team, and
									sometimes we create tests that fail in one locale but pass in
									another. Our most frequent culprit is a timezone dependency.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=47198#respond"
										onclick="return addComment.moveForm(&quot;div-comment-47198&quot;, &quot;47198&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-47221">
							<div id="div-comment-47221" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.briandicroce.com/2008/01/25/this-weeks-geek-links-jan-25th-2008/"
										rel="external nofollow" class="url">This Week’s Geek Links
											(Jan. 25th, 2008) « Brian Di Croce</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-47221">
										January 25, 2008 at 6:48 pm</a>
								</div>

								<p>[...] “TDD Anti-Patterns” Software developer James Carr
									shares his own catalogue of TDD Anti-Pattern. It’s a good
									complement to Gerard Meszaros’ “xUnit Test Patterns:
									Refactoring Test Code” and pretty helpful in case you’re
									wondering whether or not your test harness is well written.
									[...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=47221#respond"
										onclick="return addComment.moveForm(&quot;div-comment-47221&quot;, &quot;47221&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-47585">
							<div id="div-comment-47585" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f992f247f63ba6ca6e0e0c3fa5726f72"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.nelz.net/roller"
											rel="external nofollow" class="url">Nelz</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-47585">
										January 28, 2008 at 2:40 pm</a>
								</div>

								<p>James, great post!</p>
								<p>Since you asked for votes, I would vote for The
									Inspector, and The Excessive Setup, as those are the
									anti-patterns I’m most guilty of.</p>
								<p>I am also interested in The Nitpicker and how to combat
									its use in web-app testing.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=47585#respond"
										onclick="return addComment.moveForm(&quot;div-comment-47585&quot;, &quot;47585&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-47770">
							<div id="div-comment-47770" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/dc9eb034ac2e34cd044ff17b9d414aac"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://la-stories.blogspot.com/"
											rel="external nofollow" class="url">Don Hosek</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-47770">
										January 29, 2008 at 6:37 pm</a>
								</div>

								<p>For the nitpicker, the best approach is to use regular
									expression matching on the output that you’re inspecting. This
									of course can create some potential issues of its own,
									especially for the regexp newbie, but is probably the best of
									the possible solutions.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=47770#respond"
										onclick="return addComment.moveForm(&quot;div-comment-47770&quot;, &quot;47770&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-47913">
							<div id="div-comment-47913" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f3534a2b6a33f55d78f855f89a3d934a"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">PandaWood</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-47913">
										January 30, 2008 at 10:09 pm</a>
								</div>

								<p>
									Rick Clarkson says:<br> “Thankfully I rolled my own test
										framework where you return SUCCESS or FAILURE (enum members –
										slightly clearer than true/false)” 
								</p>
								<p>That sounds scary, nothing is clearer than true/false!</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=47913#respond"
										onclick="return addComment.moveForm(&quot;div-comment-47913&quot;, &quot;47913&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-49420">
							<div id="div-comment-49420" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://temujin.blogsome.com/2008/02/08/tdd-anti-patterns/"
										rel="external nofollow" class="url">temujin, the fabulous
											freak… » TDD Anti-Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-49420">
										February 8, 2008 at 6:56 am</a>
								</div>

								<p>[...] TDD Anti-Patterns [via ISerializable] [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=49420#respond"
										onclick="return addComment.moveForm(&quot;div-comment-49420&quot;, &quot;49420&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-49467">
							<div id="div-comment-49467" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/67cafeccd2e93148be7832e5ba5df51d"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.dataconstructor.com/"
											rel="external nofollow" class="url">Max Guernsey, III</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-49467">
										February 8, 2008 at 3:17 pm</a>
								</div>

								<p>Chuck: I’m not sure that “old predictable” is an
									anti-pattern. A test that is not predictable is, itself, an
									anti-pattern. If you need good coverage like that, you might
									consider generating several different tests that order threads
									differently or use different, predictable, random seeds.</p>
								<p>– Max</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=49467#respond"
										onclick="return addComment.moveForm(&quot;div-comment-49467&quot;, &quot;49467&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-57980">
							<div id="div-comment-57980" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.lobosoft.es/2008/03/29/la-implantacion-de-tdd-en-nuestra-empresa/"
										rel="external nofollow" class="url">La implantaciÃ³n de
											TDD en nuestra empresa</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-57980">
										March 29, 2008 at 11:43 am</a>
								</div>

								<p>[...] Anti-patrones TDD, de James Carr. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=57980#respond"
										onclick="return addComment.moveForm(&quot;div-comment-57980&quot;, &quot;57980&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-69036">
							<div id="div-comment-69036" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.wowgoldip.com/2008/05/22/tdd-anti-patterns/"
										rel="external nofollow" class="url">TDD Anti Patterns |
											Developer Home</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-69036">
										May 22, 2008 at 6:30 pm</a>
								</div>

								<p>[...] James Carr lists a nice bunch of TDD anti patterns.
									via Jeremy . [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=69036#respond"
										onclick="return addComment.moveForm(&quot;div-comment-69036&quot;, &quot;69036&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-76496">
							<div id="div-comment-76496" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.bostonbaydigital.com/2008/07/03/tdd-anti-patterns/"
										rel="external nofollow" class="url">Boston Bay Digital »
											TDD Anti Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-76496">
										July 3, 2008 at 8:02 am</a>
								</div>

								<p>
									[...] Anyone who has written a remotely complex web application
									applying TDD philosophies will find the following interesting:
									<a href="http://blog.james-carr.org/?p=44" rel="nofollow">http://blog.james-carr.org/?p=44</a>
									[...]
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=76496#respond"
										onclick="return addComment.moveForm(&quot;div-comment-76496&quot;, &quot;76496&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-77173">
							<div id="div-comment-77173" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://dotnet.org.za/mikegeyser/archive/2008/07/07/tdd-anti-patterns.aspx"
										rel="external nofollow" class="url">TDD Anti-Patterns -
											not just another working title</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-77173">
										July 7, 2008 at 10:04 am</a>
								</div>

								<p>[...] Share this post: email it! | bookmark it! | digg
									it! | reddit! | kick it! | live it! Posted: Jul 07 2008, 03:04
									PM by mikegeyser | with nocomments [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=77173#respond"
										onclick="return addComment.moveForm(&quot;div-comment-77173&quot;, &quot;77173&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-77335">
							<div id="div-comment-77335" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/ca9164efb0e75fb7010647fdba3fd805"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">Adrian Mouat</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-77335">
										July 8, 2008 at 7:09 am</a>
								</div>

								<p>Are these really “patterns”? I would argue they are
									closer to “code smells” as defined by Martin Fowler in
									“Refactoring”.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=77335#respond"
										onclick="return addComment.moveForm(&quot;div-comment-77335&quot;, &quot;77335&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-77462">
							<div id="div-comment-77462" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.pirnat.com/2008/07/09/links-for-2008-07-09/"
										rel="external nofollow" class="url">links for 2008-07-09</a> </cite>
									<span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-77462">
										July 9, 2008 at 1:38 am</a>
								</div>

								<p>[...] TDD Anti-Patterns Various antipatterns of the
									testing and test-driven world. Pretty sure I’ve encountered my
									fair share of them along the way–how about you? (tags: tdd
									testing antipatterns programming patterns development agile)
									[...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=77462#respond"
										onclick="return addComment.moveForm(&quot;div-comment-77462&quot;, &quot;77462&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-77626">
							<div id="div-comment-77626" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/a5e4e488d8f911e0de886c3eead1a2c2"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.grenswoningen.nl/"
											rel="external nofollow" class="url">Wonen in Duitsland</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-77626">
										July 10, 2008 at 7:33 am</a>
								</div>

								<p>Are these really â€œpatternsâ€? I would argue they are
									closer to â€œcode smellsâ€ as defined by Martin Fowler in
									â€œRefactoringâ€.</p>
								<p>
									Yes, Indeed that was the samething i was thinking about.<br>
										But i can be wrong also. 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=77626#respond"
										onclick="return addComment.moveForm(&quot;div-comment-77626&quot;, &quot;77626&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-77667">
							<div id="div-comment-77667" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/5583ee5cd9fc9109043328f4e0fdf7ae"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.ccil.org/~cowan"
											rel="external nofollow" class="url">John Cowan</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-77667">
										July 10, 2008 at 1:53 pm</a>
								</div>

								<p>Sometimes the Giant has its uses.</p>
								<p>A little while ago, I wrote a test for a method that has
									to take a number of factors into account and return one of two
									results. For example, if the content is precious, always return
									A, but if not, then if the version is 3, always return B unless
									the user has requested A, etc. etc.</p>
								<p>The giant test I wrote does the full combinatorial
									explosion of assertEquals tests: version 1, 2, or 3; user
									requested A or B; content is precious or not; etc. There end up
									being 72 calls.</p>
								<p>Now I could refactor that to 72 tests, but I don’t think
									that would help anyone much. And doing “just enough” testing
									would have turned out to be not enough: just one of the 72
									tests actually failed after I wrote the code, but it exposed a
									deep logic error. (Now I’ve had to change the code to satisfy
									new requirements, and half the tests are failing! Arrgh. But
									I’ll get it fixed eventually.)</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=77667#respond"
										onclick="return addComment.moveForm(&quot;div-comment-77667&quot;, &quot;77667&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-77729">
							<div id="div-comment-77729" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/35a99577f34d34e8642a19b41afe0b96"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">Graham Lenton</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-77729">
										July 11, 2008 at 5:56 am</a>
								</div>

								<p>How about the ‘Honest, Guv’ where the expected outcome is
									so entropic that the developer simply asserts true with a
									comment ‘this works, honestly..’</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=77729#respond"
										onclick="return addComment.moveForm(&quot;div-comment-77729&quot;, &quot;77729&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-91447">
							<div id="div-comment-91447" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://jasonrudolph.com/blog/2008/10/07/testing-anti-patterns-potpourri-quotes-resources-and-collective-wisdom/"
										rel="external nofollow" class="url">:jasonrudolph =&gt;
											:blog » Blog Archive » Testing Anti-Patterns Potpourri -
											Quotes, Resources, and Collective Wisdom</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-91447">
										October 7, 2008 at 6:30 am</a>
								</div>

								<p>[...] start off with something light. James Carr’s TDD
									Anti-Pattern Catalogue is a good, fun read that’s downright
									hilarious at times (but only because we remember writing [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=91447#respond"
										onclick="return addComment.moveForm(&quot;div-comment-91447&quot;, &quot;91447&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-93819">
							<div id="div-comment-93819" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://kartones.net/blogs/kartones/pages/links.aspx"
										rel="external nofollow" class="url">Links - Kartones Blog</a>
									</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-93819">
										November 2, 2008 at 7:00 pm</a>
								</div>

								<p>[...] LibraryScott Hanselman Dev&amp;TestTDD
									Anti-PatternsEl Ave [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=93819#respond"
										onclick="return addComment.moveForm(&quot;div-comment-93819&quot;, &quot;93819&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-95648">
							<div id="div-comment-95648" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/69772f0246d5013d72703967b8761e89"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://madcoderspeak.blogspot.com/"
											rel="external nofollow" class="url">Gishu Pillai</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-95648">
										December 2, 2008 at 7:33 am</a>
								</div>

								<p>
									I started a thread on stackoverflow.com, which is what I
									associate with voting nowadays <img
										src="./TDD Anti-Patterns   James Carr_files/icon_smile.gif"
										alt=":)" class="wp-smiley"><br> Anyways you may
											want to take a look at an informal anti-pattern survey of
											sorts here<br> <a
												href="http://stackoverflow.com/questions/333682/tdd-anti-patterns-catalogue#333697"
												rel="nofollow">http://stackoverflow.com/questions/333682/tdd-anti-patterns-catalogue#333697</a>
								</p>
								<p>and of course.. uber post. Thanks for taking the time to
									put this down.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=95648#respond"
										onclick="return addComment.moveForm(&quot;div-comment-95648&quot;, &quot;95648&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-96806">
							<div id="div-comment-96806" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://gettingagile.com/2008/12/22/tdd-anti-patterns/"
										rel="external nofollow" class="url">GettingAgile.com »
											Blog Archive » TDD Anti-Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-96806">
										December 22, 2008 at 5:20 am</a>
								</div>

								<p>[...] A catalog of common issues individuals and teams
									run into while doing TDD on their projects is well under way in
									this blog entry. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=96806#respond"
										onclick="return addComment.moveForm(&quot;div-comment-96806&quot;, &quot;96806&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-97930">
							<div id="div-comment-97930" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.carlosble.com/?p=225" rel="external nofollow"
										class="url">El blog de Carlos Ble » Antipatrones en TDD</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-97930">
										January 9, 2009 at 12:14 pm</a>
								</div>

								<p>[...] es una traducciÃ³n del artÃ­culo de James Carr, TDD
									Anti-Patterns. En dicho artÃ­culo algunos antipatrones han sido
									escritos por Frank Carver, Tim Ottinger, Cory [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=97930#respond"
										onclick="return addComment.moveForm(&quot;div-comment-97930&quot;, &quot;97930&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-97932">
							<div id="div-comment-97932" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/7682355fddfd0f336bb2d6364d3689e4"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://carlosble.com/"
											rel="external nofollow" class="url">Carlos Ble</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-97932">
										January 9, 2009 at 12:19 pm</a>
								</div>

								<p>
									Excelent article James!<br> I’ve translated it to spanish:
										<a href="http://www.carlosble.com/?p=225" rel="nofollow">http://www.carlosble.com/?p=225</a>
								</p>
								<p>Thanks</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=97932#respond"
										onclick="return addComment.moveForm(&quot;div-comment-97932&quot;, &quot;97932&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-98769">
							<div id="div-comment-98769" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://mkfsh.wordpress.com/2009/01/28/test-driven-development-patterns-practices-references/"
										rel="external nofollow" class="url">Test Driven
											Development - Patterns &amp; Practices: References « Ibn e
											Muazzam’s Blog</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-98769">
										January 28, 2009 at 2:56 am</a>
								</div>

								<p>
									[...] <a
										href="./TDD Anti-Patterns   James Carr_files/TDD Anti-Patterns   James Carr.htm"
										rel="nofollow">http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/</a>
									[...]
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=98769#respond"
										onclick="return addComment.moveForm(&quot;div-comment-98769&quot;, &quot;98769&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-99333">
							<div id="div-comment-99333" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://grimpidev.wordpress.com/2009/02/06/test-driven-development-tdd/"
										rel="external nofollow" class="url">IntroducciÃ³n a Test
											Driven Development (TDD) « Grimpi IT Blog</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-99333">
										February 6, 2009 at 10:51 pm</a>
								</div>

								<p>[...] Anti-Patterns de TDD [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=99333#respond"
										onclick="return addComment.moveForm(&quot;div-comment-99333&quot;, &quot;99333&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-100619">
							<div id="div-comment-100619" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://suomala.wordpress.com/2009/03/09/tdd-anti-patterns/"
										rel="external nofollow" class="url">TDD Anti-Patterns «
											Pekka ‘Peks’ Suomalan blogi</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-100619">
										March 9, 2009 at 1:50 pm</a>
								</div>

								<p>[...] 9, 2009 suomala TÃ¶rmÃ¤sin tÃ¤hÃ¤n hiljattain
									uudelleen. KyseessÃ¤ on James Carrin artikkeli TDD
									Anti-Patterns yksikkÃ¶testien sudenkuopista. KevyttÃ¤
									luettavaa, mutta sisÃ¤ltÃ¤Ã¤ silti paljon hyviÃ¤ [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=100619#respond"
										onclick="return addComment.moveForm(&quot;div-comment-100619&quot;, &quot;100619&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-103436">
							<div id="div-comment-103436" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/226cd59b2d3f06b17d8b2c5bd73816c7"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">fact</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-103436">
										April 28, 2009 at 6:15 am</a>
								</div>

								<p>TDD is an anti-pattern.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=103436#respond"
										onclick="return addComment.moveForm(&quot;div-comment-103436&quot;, &quot;103436&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-103439">
							<div id="div-comment-103439" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://undefined.com/ia/2009/04/28/cool-list-of-tdd-anti-patterns/"
										rel="external nofollow" class="url">Indefinite Articles »
											cool list of TDD anti-patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-103439">
										April 28, 2009 at 7:55 am</a>
								</div>

								<p>[...] a blast from the past [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=103439#respond"
										onclick="return addComment.moveForm(&quot;div-comment-103439&quot;, &quot;103439&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-103480">
							<div id="div-comment-103480" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.knowtu.com/2009/04/28/links-for-2009-04-28/"
										rel="external nofollow" class="url">Knowtu » links for
											2009-04-28</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-103480">
										April 28, 2009 at 9:04 pm</a>
								</div>

								<p>[...] James Carr Â» Blog Archive Â» TDD Anti-Patterns
									(tags: testing junit tdd) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=103480#respond"
										onclick="return addComment.moveForm(&quot;div-comment-103480&quot;, &quot;103480&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-103483">
							<div id="div-comment-103483" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a href="http://toby.epril.com/?p=750"
										rel="external nofollow" class="url">TDD ì•ˆí‹° íŒ¨í„´</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-103483">
										April 28, 2009 at 9:59 pm</a>
								</div>

								<p>[...] Carrê°€ TDD Anti-Patternsì„ ê³µê°œí–ˆë‹¤.
									TDDë¼ê³&nbsp; ë˜ì–´ìžˆì§€ë§Œ ì‚¬ì‹¤ì€
									í…ŒìŠ¤íŠ¸(ì½”ë“œìž‘ì„±) ì•ˆí‹°íŒ¨í„´ì´ë¼ê³&nbsp; [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=103483#respond"
										onclick="return addComment.moveForm(&quot;div-comment-103483&quot;, &quot;103483&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-103531">
							<div id="div-comment-103531" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://mikemclean.ca/muse/2009/04/links-for-2009-04-29/"
										rel="external nofollow" class="url">links for 2009-04-29 |
											the higher you fly</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-103531">
										April 29, 2009 at 5:28 pm</a>
								</div>

								<p>[...] James Carr Â» Blog Archive Â» TDD Anti-Patterns
									(tags: testing tdd programming) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=103531#respond"
										onclick="return addComment.moveForm(&quot;div-comment-103531&quot;, &quot;103531&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-103648">
							<div id="div-comment-103648" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/0bfcd61fc289de2e441929ecfd00b0ed"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">Peter Hickman</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-103648">
										May 1, 2009 at 7:23 am</a>
								</div>

								<p>Having just sat down and read through a bunch of unit
									tests that can take 15 minutes to run I would like to propose
									the “test everything” anti-pattern. In this anti-pattern the
									unit tests test the functionality of the programming language
									along with the application.</p>
								<p>For example I have just seen a load of tests to see if a
									subclass has it’s superclass as an ancestor and that the
									methods of the superclass are all inherited. The only way in
									which this can break is if the language changes!</p>
								<p>I fully expect to see tests to make sure that 1 + 1 still
									equals 2, you known, just incase!</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=103648#respond"
										onclick="return addComment.moveForm(&quot;div-comment-103648&quot;, &quot;103648&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-103681">
							<div id="div-comment-103681" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://moffdub.wordpress.com/2009/05/01/helltime-for-may-1/"
										rel="external nofollow" class="url">Helltime for May 1 « I
											Built His Cage</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-103681">
										May 1, 2009 at 6:02 pm</a>
								</div>

								<p>[...] Carr has a comprehensive list of TDD Anti-Patterns.
									Full disclosure: I am regularly guilty of The One (one test
									method for the entire class) and The [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=103681#respond"
										onclick="return addComment.moveForm(&quot;div-comment-103681&quot;, &quot;103681&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-104119">
							<div id="div-comment-104119" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://qa.co.kg/index.php/archives/358"
										rel="external nofollow" class="url">»
											ÐÐ½Ñ‚Ð¸Ð¿Ð°Ñ‚Ñ‚ÐµÑ€Ð½Ñ‹ TDD Ð¸ Ð½Ðµ Ñ‚Ð¾Ð»ÑŒÐºÐ¾
											QAÐ»Ð¸Ñ„Ð¸ÐºÐ°Ñ†Ð¸Ñ</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-104119">
										May 7, 2009 at 12:30 am</a>
								</div>

								<p>[...] Ð½Ð° ÑÑ‚Ð°Ñ€ÑƒÑŽ, Ð½Ð¾ Ð´Ð¾ ÑÐ¸Ñ… Ð¿Ð¾Ñ€
									Ð°ÐºÑ‚ÑƒÐ°Ð»ÑŒÐ½ÑƒÑŽ ÑÑ‚Ð°Ñ‚ÑŒÑŽ Ð¿Ð¾ÑÐ²ÑÑ‰ÐµÐ½Ð½ÑƒÑŽ
									Ð°Ð½Ñ‚Ð¸Ð¿Ð°Ñ‚Ñ‚ÐµÑ€Ð½Ð°Ð¼ Ð² test driven development,
									Ð±Ð¾Ð»ÑŒÑˆÐ°Ñ [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=104119#respond"
										onclick="return addComment.moveForm(&quot;div-comment-104119&quot;, &quot;104119&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-104297">
							<div id="div-comment-104297" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.ennuyer.net/i-am-way-behind-on-my-rails-link-blogging-link-dump-and-reboot/"
										rel="external nofollow" class="url">Ennuyer.net » Blog
											Archive » I am way behind on my rails link blogging. Link
											dump and reboot.</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-104297">
										May 9, 2009 at 6:43 am</a>
								</div>

								<p>[...] James Carr Â» Blog Archive Â» TDD Anti-Patterns
									[...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=104297#respond"
										onclick="return addComment.moveForm(&quot;div-comment-104297&quot;, &quot;104297&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-104901">
							<div id="div-comment-104901" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://mkhairul.com/2009/05/16/thoughts-on-tdd/"
										rel="external nofollow" class="url">[ mkhairul.com ] »
											Thoughts on TDD</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-104901">
										May 15, 2009 at 4:02 pm</a>
								</div>

								<p>[...] have to keep a lookout for TDD anti-patterns, and
									always remember.. Testing by itself does not improve software
									quality. Test results are an [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=104901#respond"
										onclick="return addComment.moveForm(&quot;div-comment-104901&quot;, &quot;104901&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-106432">
							<div id="div-comment-106432" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://pabloidz.wordpress.com/2009/06/01/links-for-2009-06-01/"
										rel="external nofollow" class="url">links for 2009-06-01 «
											pabloidz</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-106432">
										June 1, 2009 at 8:03 am</a>
								</div>

								<p>[...] TDD Anti-Patterns James Carr (tags: anti-patterns
									tdd) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=106432#respond"
										onclick="return addComment.moveForm(&quot;div-comment-106432&quot;, &quot;106432&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-106650">
							<div id="div-comment-106650" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/0aa6aefcbad54e4f65014a52fed05808"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">Andrej</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-106650">
										June 3, 2009 at 1:39 pm</a>
								</div>

								<p>
									The problem of the Nitpicker is that it is not a Unit test at
									all. A unit test is supposed to test a Unit using the API of
									the unit. If the system is split into units well, an API of a
									unit should not change often or contain too many unimportant
									details.<br> Testing a Web interface is not unit testing,
										because intead of testing units we test the whole application
										via it user interface. 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=106650#respond"
										onclick="return addComment.moveForm(&quot;div-comment-106650&quot;, &quot;106650&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li
							class="comment byuser comment-author-admin bypostauthor odd alt thread-odd thread-alt depth-1"
							id="comment-106831">
							<div id="div-comment-106831" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/f5308d249ed7ff8f96ba888ba707df3f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://blog.james-carr.org/"
											rel="external nofollow" class="url">James Carr</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-106831">
										June 5, 2009 at 11:10 am</a>
								</div>

								<p>@Andrej</p>
								<p>Indeed! A good unit test would not test the entire web
									application through the user interface, but rather test a
									single individual unit of the interface or system.</p>
								<p>However, it is not uncommon in web projects that span
									multiple teams to come across a JUnit test (being referred to
									by other devs as a “unit test”) that uses Selenium, HtmlUnit,
									or some other means to test a specific unit in the whole bang
									of the system. The problem is it’s an integration test or
									acceptance test, but the developers end up having it ran with
									the developer tests.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=106831#respond"
										onclick="return addComment.moveForm(&quot;div-comment-106831&quot;, &quot;106831&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-107308">
							<div id="div-comment-107308" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://mjtsai.com/blog/2009/06/12/tdd-anti-patterns/"
										rel="external nofollow" class="url">Michael Tsai - Blog -
											TDD Anti-Patterns</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-107308">
										June 12, 2009 at 9:23 am</a>
								</div>

								<p>[...] James Carr (via Ned Batchelder): The Nitpicker: A
									unit test which compares a complete output when it’s really
									only interested in small parts of it, so the test has to
									continually be kept in line with otherwise unimportant details.
									Endemic in web application testing. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=107308#respond"
										onclick="return addComment.moveForm(&quot;div-comment-107308&quot;, &quot;107308&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-107474">
							<div id="div-comment-107474" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://rapid-dev.net/2009/06/quick-links-short-right-anti/"
										rel="external nofollow" class="url">Quick links: short,
											right, anti | rapid-DEV.net</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-107474">
										June 15, 2009 at 1:27 am</a>
								</div>

								<p>[...] TDD Anti-Patterns: a funny skewering of what people
									do wrong in unit tests var addthis_pub = ‘huynhtronghoan’; var
									[...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=107474#respond"
										onclick="return addComment.moveForm(&quot;div-comment-107474&quot;, &quot;107474&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-107502">
							<div id="div-comment-107502" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/3c2ce5e843cef58cf546b403c6233597"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://mcherm.com/"
											rel="external nofollow" class="url">Michael Chermside</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-107502">
										June 15, 2009 at 2:37 pm</a>
								</div>

								<p>The Time Switcher:</p>
								<p>A test case that passes or fails depending on the time
									zone of the local machine (and/or whether or not daylight
									savings is in effect). Often fixed by switching the hour so
									that the test breaks twice a year.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=107502#respond"
										onclick="return addComment.moveForm(&quot;div-comment-107502&quot;, &quot;107502&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-108055">
							<div id="div-comment-108055" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/7ff15f95bff46bc40d84e1ca14ca5cae"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn">andreifeld</cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-108055">
										June 23, 2009 at 4:16 am</a>
								</div>

								<p>
									Hi all,<br> I’m thinking maybe the next question will be
										appropriate here in a TDD blog article… 
								</p>
								<p>
									Let’s presume I’m running unit tests on a mysql DB.<br>
										The DB is required to be up and running and I’m using my
										application API’s in order to load and save from the DB. 
								</p>
								<p>Now this is very slow as using this API to a persistence
									DB is very expensive.</p>
								<p>I am not a DBA, but is there a simple way that I can use
									my existing sql tables as ‘in memory tables’? This will robust
									my testing framework endlessly.</p>
								<p>thanks</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=108055#respond"
										onclick="return addComment.moveForm(&quot;div-comment-108055&quot;, &quot;108055&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-108921">
							<div id="div-comment-108921" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/03233cbe842e3cc01e821f314cbb4a9d"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://agileinaflash.blogspot.com/"
											rel="external nofollow" class="url">Tim Ottinger</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-108921">
										July 1, 2009 at 11:29 pm</a>
								</div>

								<p>James:</p>
								<p>
									We produced an index-card-sized version of the list, reduced
									for space considerations, but any attempt to write up a quick
									statement on each would be about the same size as your article.
									Any chance you would agree with me posting this article, or as
									much as fits, on the site at <a
										href="http://agileinaflash.blogspot.com/2009/06/tdd-antipatterns.html?"
										rel="nofollow">http://agileinaflash.blogspot.com/2009/06/tdd-antipatterns.html?</a>
								</p>
								<p>Feel free to use this posting’s email</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=108921#respond"
										onclick="return addComment.moveForm(&quot;div-comment-108921&quot;, &quot;108921&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-109043">
							<div id="div-comment-109043" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.james-carr.org/2009/07/03/agile-in-a-flash/"
										rel="external nofollow" class="url">James Carr » Blog
											Archive » Agile in a Flash</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-109043">
										July 3, 2009 at 12:59 am</a>
								</div>

								<p>[...] I discovered an interesting blog thanks to Tim
									Ottinger’s comment on my TDD Anti-Patterns post, Agile in a
									Flash. It looks like they’re putting together a comprehensive
									book plus [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=109043#respond"
										onclick="return addComment.moveForm(&quot;div-comment-109043&quot;, &quot;109043&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-109924">
							<div id="div-comment-109924" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://blog.cwa.me.uk/2009/07/17/the-morning-brew-392/"
										rel="external nofollow" class="url">Reflective Perspective
											- Chris Alcock » The Morning Brew #392</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-109924">
										July 17, 2009 at 3:41 am</a>
								</div>

								<p>[...] TDD Anti-Patterns – I came across a couple of
									people linking to this article from 2006 by James Carr which
									lists a number of TDD related anti-patterns. Some of the names
									are rather light hearted, but the problems they describe are
									quite serious [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=109924#respond"
										onclick="return addComment.moveForm(&quot;div-comment-109924&quot;, &quot;109924&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-109940">
							<div id="div-comment-109940" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/2076f150ee7934e4033b0ab7c1a9c73f"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.machete.ca/"
											rel="external nofollow" class="url">Allain Lalonde</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-109940">
										July 17, 2009 at 12:16 pm</a>
								</div>

								<p>Excellent Post</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=109940#respond"
										onclick="return addComment.moveForm(&quot;div-comment-109940&quot;, &quot;109940&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-110018">
							<div id="div-comment-110018" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://identi.ca/notice/6680147" rel="external nofollow"
										class="url">Roman Joost (romanofski) 's status on Sunday,
											19-Jul-09 13:36:17 UTC - Identi.ca</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-110018">
										July 19, 2009 at 9:36 am</a>
								</div>

								<p>
									[...] <a
										href="./TDD Anti-Patterns   James Carr_files/TDD Anti-Patterns   James Carr.htm"
										rel="nofollow">http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/</a>
									[...]
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=110018#respond"
										onclick="return addComment.moveForm(&quot;div-comment-110018&quot;, &quot;110018&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-110055">
							<div id="div-comment-110055" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.kozlenko.info/?p=591" rel="external nofollow"
										class="url">Maxim’s blog » links for 2009-07-20</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-110055">
										July 20, 2009 at 3:02 am</a>
								</div>

								<p>[...] TDD Anti-Patterns A list of most common TDD
									Anti-Patterns with short description [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=110055#respond"
										onclick="return addComment.moveForm(&quot;div-comment-110055&quot;, &quot;110055&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-110524">
							<div id="div-comment-110524" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://pabloidz.wordpress.com/2009/07/27/links-for-2009-07-27/"
										rel="external nofollow" class="url">links for 2009-07-27 «
											pabloidz</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-110524">
										July 27, 2009 at 8:04 am</a>
								</div>

								<p>[...] TDD Anti-Patterns James Carr (tags: tdd) [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=110524#respond"
										onclick="return addComment.moveForm(&quot;div-comment-110524&quot;, &quot;110524&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-110555">
							<div id="div-comment-110555" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.jaceju.net/blog/?p=613"
										rel="external nofollow" class="url">ç¶²ç«™è£½ä½œå­¸ç¿’èªŒ
											» [Web] é€£çµåˆ†äº«</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-110555">
										July 28, 2009 at 6:06 am</a>
								</div>

								<p>[...] TDD Anti-Patterns [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=110555#respond"
										onclick="return addComment.moveForm(&quot;div-comment-110555&quot;, &quot;110555&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-110651">
							<div id="div-comment-110651" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://grantpalin.com/2009/07/29/weekly-links-63/"
										rel="external nofollow" class="url">Weekly Links #63 |
											GrantPalin.com</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-110651">
										July 29, 2009 at 9:22 pm</a>
								</div>

								<p>[...] TDD Anti-Patterns Seems to be focused on unit
									testing, not so much test-driven development. Good points all
									the same. [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=110651#respond"
										onclick="return addComment.moveForm(&quot;div-comment-110651&quot;, &quot;110651&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-112583">
							<div id="div-comment-112583" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/46a5b91733681b3f43cf99080a1150be"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://tvoeimja.ru/"
											rel="external nofollow" class="url">Ð˜Ð²Ð°Ð½</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-112583">
										September 1, 2009 at 4:28 pm</a>
								</div>

								<p>
									<a href="http://tvoeimja.ru/" rel="nofollow">Ð¸Ð¼Ñ,Ð¸Ð¼ÐµÐ½Ð¸,Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ°,Ð»ÑŽÐ´ÐµÐ¹,Ñ€ÑƒÑÐ¸,Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ
										Ð¸Ð¼ÐµÐ½Ð¸,Ð¶ÐµÐ½ÑÐºÐ¸Ðµ Ð¸Ð¼ÐµÐ½Ð°,Ð¸Ð¼ÐµÐ½Ð°
										Ð±ÐµÑÐ¿Ð»Ð°Ñ‚Ð½Ð¾,Ð¼ÑƒÐ¶ÑÐºÐ¸Ðµ
										Ð¸Ð¼ÐµÐ½Ð°,ÑÐ¾Ð²Ð¼ÐµÑÑ‚Ð¸Ð¼Ð¾ÑÑ‚ÑŒ Ð¸Ð¼ÐµÐ½,Ð¸Ð¼Ñ
										Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ°,Ð¸Ð¼ÐµÐ½Ð° Ð´ÐµÐ²Ð¾Ñ‡ÐµÐº,Ñ‚Ð°Ð¹Ð½Ð°
										Ð¸Ð¼ÐµÐ½Ð¸,Ð¸Ð¼ÐµÐ½Ð° Ð¼Ð°Ð»ÑŒÑ‡Ð¸ÐºÐ¾Ð²</a>Ð£ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾
									Ñ‡ÐµÐ»Ð¾Ð²ÐµÐºÐ° ÐµÑÑ‚ÑŒ ÑÐ²Ð¾Ñ‘ Ð¸Ð¼Ñ, Ð½Ð¾ Ð½Ðµ
									ÐºÐ°Ð¶Ð´Ñ‹Ð¹ Ñ‡ÐµÐ»Ð¾Ð²ÐµÐº Ð¼Ð¾Ð¶ÐµÑ‚ ÑÐºÐ°Ð·Ð°Ñ‚ÑŒ Ñ‡Ñ‚Ð¾<br>
										Ð¶Ðµ Ð·Ð½Ð°Ñ‡Ñ‚Ð¸ ÐµÐ³Ð¾ Ð¸Ð¼Ñ .<br> ÐÐµ ÐºÐ°Ð¶Ð´Ñ‹Ð¹
											Ð·Ð½Ð°ÐµÑ‚ Ð¿Ñ€Ð¾Ð¸ÑÑ…Ð¾Ð¶Ð´ÐµÐ½Ð¸Ðµ Ð¸ ÐºÐ¾Ñ€Ð½Ð¸
											ÑÐ²Ð¾ÐµÐ³Ð¾ Ð¸Ð¼ÐµÐ½Ð¸, Ñ…Ð¾Ñ‚Ñ ÑÑ‚Ð¾ Ð¾Ñ‡ÐµÐ½ÑŒ
											Ð²Ð°Ð¶Ð½Ð¾. 
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=112583#respond"
										onclick="return addComment.moveForm(&quot;div-comment-112583&quot;, &quot;112583&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-113096">
							<div id="div-comment-113096" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/bd81437505dca0494336e66269c24f89"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.officerental.nl/"
											rel="external nofollow" class="url">Kantoorpand /
												Bedrijfspand huren</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-113096">
										September 15, 2009 at 12:59 pm</a>
								</div>

								<p>I discovered an interesting blog thanks to Tim
									Ottingerâ€™s comment on my TDD Anti-Patterns post, Agile in a
									Flash.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=113096#respond"
										onclick="return addComment.moveForm(&quot;div-comment-113096&quot;, &quot;113096&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-113948">
							<div id="div-comment-113948" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.joaoalmeida.info/?p=35"
										rel="external nofollow" class="url">TDD Anti-Patterns |
											the fabulous freak</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-113948">
										September 25, 2009 at 9:47 am</a>
								</div>

								<p>[...] TDD Anti-Patterns [via ISerializable] [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=113948#respond"
										onclick="return addComment.moveForm(&quot;div-comment-113948&quot;, &quot;113948&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-117927">
							<div id="div-comment-117927" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/41d0bb0711c4102dc381d5e731973d2c"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.chrisshayan.com/"
											rel="external nofollow" class="url">Chris Shayan</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-117927">
										November 10, 2009 at 7:01 am</a>
								</div>

								<p>
									<a
										href="http://www.chrisshayan.com/my/index.php?option=com_content&view=article&id=266:unit-tests&catid=48:clean-code&Itemid=65"
										rel="nofollow">http://www.chrisshayan.com/my/index.php?option=com_content&amp;view=article&amp;id=266:unit-tests&amp;catid=48:clean-code&amp;Itemid=65</a>
								</p>
								<p>or</p>
								<p>
									<a
										href="http://www.chrisshayan.com/my/index.php?option=com_content&view=article&id=281:slap&catid=49:refactoring&Itemid=65"
										rel="nofollow">http://www.chrisshayan.com/my/index.php?option=com_content&amp;view=article&amp;id=281:slap&amp;catid=49:refactoring&amp;Itemid=65</a>
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=117927#respond"
										onclick="return addComment.moveForm(&quot;div-comment-117927&quot;, &quot;117927&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-118344">
							<div id="div-comment-118344" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://leaningagile.wordpress.com/2009/11/16/tdd-antipatterns/"
										rel="external nofollow" class="url">TDD Antipatterns «
											Lean, Agile and good software devepment</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-118344">
										November 16, 2009 at 8:08 am</a>
								</div>

								<p>[...] Jame Carr anti-patterns catalogue [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=118344#respond"
										onclick="return addComment.moveForm(&quot;div-comment-118344&quot;, &quot;118344&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-123997">
							<div id="div-comment-123997" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.lbotti.net/blog/2010/01/12/surfing/"
										rel="external nofollow" class="url">Surfing « Everything
											technical</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-123997">
										January 12, 2010 at 7:14 pm</a>
								</div>

								<p>[...] platforms as possible to test open source software
									builds. Finally, a nice old blog entry regarding TDD
									AntiPatterns. Lot of stuff. Will keep an eye on those (and
									perhaps contribute to basie, who [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=123997#respond"
										onclick="return addComment.moveForm(&quot;div-comment-123997&quot;, &quot;123997&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment odd alt thread-odd thread-alt depth-1"
							id="comment-128613">
							<div id="div-comment-128613" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/ff053fc3188fec0d6be5b2287699e539"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://argehaber.blogspot.com/"
											rel="external nofollow" class="url">argehaber</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-128613">
										February 25, 2010 at 7:31 pm</a>
								</div>

								<p>could not exactly turn some sentences. but in general was
									a useful article. I have read with admiration. good work.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=128613#respond"
										onclick="return addComment.moveForm(&quot;div-comment-128613&quot;, &quot;128613&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-134715">
							<div id="div-comment-134715" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://mokhan.ca/press/2007/05/03/sleep-sitting/"
										rel="external nofollow" class="url">Sleep Sitting « Mo
											Khan: My Blog!</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-134715">
										April 17, 2010 at 10:59 pm</a>
								</div>

								<p>
									[...] On another note i read an interesting article last night
									on TDD anti-patterns… It’s a good read and it taught me that as
									a newbie I am making a lot of classic TDD mistakes… Check out
									the article if you have a chance… <a
										href="http://blog.james-carr.org/?p=44" rel="nofollow">http://blog.james-carr.org/?p=44</a>
									[...]
								</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=134715#respond"
										onclick="return addComment.moveForm(&quot;div-comment-134715&quot;, &quot;134715&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-140091">
							<div id="div-comment-140091" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://kartones.net/blogs/kartones/archive/2006/12/03/tdd-and-testing.aspx"
										rel="external nofollow" class="url">TDD and Testing -
											Kartones Blog</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-140091">
										July 2, 2010 at 3:14 am</a>
								</div>

								<p>[...] serves as an introduction and gives few
									advices/tips. The most interesting thing I've found is an
									article about TDD Anti-Patterns. It contains a list of
									anti-patterns, each one with a description. Quite useful, as
									probably most [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=140091#respond"
										onclick="return addComment.moveForm(&quot;div-comment-140091&quot;, &quot;140091&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="comment even thread-even depth-1" id="comment-141849">
							<div id="div-comment-141849" class="comment-body">
								<div class="comment-author vcard">
									<img alt=""
										src="./TDD Anti-Patterns   James Carr_files/7dfa6cbcde567847d1a0f9ce82bc02eb"
										class="avatar avatar-40 photo" height="40" width="40"> <cite
										class="fn"><a href="http://www.casualmiracles.com/"
											rel="external nofollow" class="url">Lance Walton</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-141849">
										July 29, 2010 at 5:42 pm</a>
								</div>

								<p>This is a good catalog. But they’re not actually TDD
									anti-patterns; they are unit-test anti-patterns.</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=141849#respond"
										onclick="return addComment.moveForm(&quot;div-comment-141849&quot;, &quot;141849&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback odd alt thread-odd thread-alt depth-1"
							id="comment-146407">
							<div id="div-comment-146407" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.just-about.net/?p=392"
										rel="external nofollow" class="url">Test Harder and
											Smarter | Just about .NET</a> </cite> <span class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-146407">
										September 27, 2010 at 5:11 am</a>
								</div>

								<p>[...] must always kept running. In my eyes it is wrong to
									demonize TDD. It is more a question of â€œhow shall I use itâ€
									instead of â€œToo Damn [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=146407#respond"
										onclick="return addComment.moveForm(&quot;div-comment-146407&quot;, &quot;146407&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
						<li class="pingback even thread-even depth-1" id="comment-149000">
							<div id="div-comment-149000" class="comment-body">
								<div class="comment-author vcard">
									<cite class="fn"><a
										href="http://www.vectorcast.com/blog/2010/10/22/what-not-to-do-during-test-creation/"
										rel="external nofollow" class="url">What NOT to do during
											test creation « Automated Software Testing</a> </cite> <span
										class="says">says:</span>
								</div>

								<div class="comment-meta commentmetadata">
									<a
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#comment-149000">
										October 22, 2010 at 2:59 pm</a>
								</div>

								<p>[...] you are interested in some examples, James Carr
									came up with a list of test anti-patterns. TDD Anti-Pattern
									Catalogue The Liar An entire unit test that passes all of the
									test cases it has [...]</p>

								<div class="reply">
									<a rel="nofollow" class="comment-reply-link"
										href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/?replytocom=149000#respond"
										onclick="return addComment.moveForm(&quot;div-comment-149000&quot;, &quot;149000&quot;, &quot;respond&quot;, &quot;44&quot;)">Reply</a>
								</div>
							</div>
						</li>
					</ol>

					<div class="navigation">
						<div class="alignleft"></div>
						<div class="alignright"></div>
					</div>



					<div id="respond">

						<h3>Leave a Reply</h3>

						<div class="cancel-comment-reply">
							<small><a rel="nofollow" id="cancel-comment-reply-link"
								href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#respond"
								style="display: none;">Click here to cancel reply.</a> </small>
						</div>


						<form action="http://blog.james-carr.org/wp-comments-post.php"
							method="post" id="commentform">


							<p>
								<input type="text" name="author" id="author" value="" size="22"
									tabindex="1" aria-required="true"> <label for="author"><small>Name
											(required)</small> </label>
							</p>

							<p>
								<input type="text" name="email" id="email" value="" size="22"
									tabindex="2" aria-required="true"> <label for="email"><small>Mail
											(will not be published) (required)</small> </label>
							</p>

							<p>
								<input type="text" name="url" id="url" value="" size="22"
									tabindex="3"> <label for="url"><small>Website</small>
								</label>
							</p>


							<!--<p><small><strong>XHTML:</strong> You can use these tags: <code>&lt;a href=&quot;&quot; title=&quot;&quot;&gt; &lt;abbr title=&quot;&quot;&gt; &lt;acronym title=&quot;&quot;&gt; &lt;b&gt; &lt;blockquote cite=&quot;&quot;&gt; &lt;cite&gt; &lt;code&gt; &lt;del datetime=&quot;&quot;&gt; &lt;em&gt; &lt;i&gt; &lt;q cite=&quot;&quot;&gt; &lt;strike&gt; &lt;strong&gt; </code></small></p>-->

							<p>
								<textarea name="comment" id="comment" cols="100%" rows="10"
									tabindex="4"></textarea>
							</p>

							<p>
								<input name="submit" type="submit" id="submit" tabindex="5"
									value="Submit Comment"> <input type="hidden"
									name="comment_post_ID" value="44" id="comment_post_ID">
										<input type="hidden" name="comment_parent" id="comment_parent"
										value="0">
							</p>

						</form>

					</div>



				</div>
			</div>
			<div class="span-8 last">
				<div id="subscriptions">
					<a href="http://blog.james-carr.org/feed/"><img
						src="./TDD Anti-Patterns   James Carr_files/rss.png"
						alt="Subscribe to RSS Feed" title="Subscribe to RSS Feed">
					</a> <a
						href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#"
						title="Follow me on Twitter!"><img
						src="./TDD Anti-Patterns   James Carr_files/twitter.png"
						title="Follow me on Twitter!" alt="Follow me on Twitter!">
					</a>
				</div>
				<div id="sidebar">

					<ul>
						<li id="search">

							<div class="searchlayout">
								<form method="get" id="searchform"
									action="http://blog.james-carr.org/">
									<input type="text" value="Search" name="s" id="s"
										onblur="if (this.value == &#39;&#39;)  {this.value = &#39;Search&#39;;}"
										onfocus="if (this.value == &#39;Search&#39;) {this.value = &#39;&#39;;}">
										<input type="image"
										src="./TDD Anti-Patterns   James Carr_files/search.gif"
										style="border: 0; vertical-align: top;">
								</form>
							</div>
						</li>
					</ul>
					<div class="addthis_toolbox">
						<div class="custom_images">
							<a class="addthis_button_twitter at300b" target="_blank"
								title="Tweet This"><img
								src="./TDD Anti-Patterns   James Carr_files/twitter(1).png"
								width="32" height="32" alt="Twitter">
							</a> <a class="addthis_button_delicious at300b"
								href="http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=xa-4a65e1d93cd75e94&source=tbx-250&lng=en-US&s=delicious&url=http%3A%2F%2Fblog.james-carr.org%2F2006%2F11%2F03%2Ftdd-anti-patterns%2F&title=TDD%20Anti-Patterns%20%7C%20James%20Carr&ate=AT-xa-4a65e1d93cd75e94/-/-/4db7ef3458d507e2/1&uid=4db7ef3484d587bd&CXNID=2000001.5215456080540439074NXC&tt=0"
								target="_blank" title="Send to Delicious"><img
								src="./TDD Anti-Patterns   James Carr_files/delicious.png"
								width="32" height="32" alt="Delicious">
							</a> <a class="addthis_button_facebook at300b"
								href="http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=xa-4a65e1d93cd75e94&source=tbx-250&lng=en-US&s=facebook&url=http%3A%2F%2Fblog.james-carr.org%2F2006%2F11%2F03%2Ftdd-anti-patterns%2F&title=TDD%20Anti-Patterns%20%7C%20James%20Carr&ate=AT-xa-4a65e1d93cd75e94/-/-/4db7ef3458d507e2/2&uid=4db7ef3484cc0acd&CXNID=2000001.5215456080540439074NXC&tt=0"
								target="_blank" title="Send to Facebook"><img
								src="./TDD Anti-Patterns   James Carr_files/facebook.png"
								width="32" height="32" alt="Facebook">
							</a> <a class="addthis_button_digg at300b"
								href="http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=xa-4a65e1d93cd75e94&source=tbx-250&lng=en-US&s=digg&url=http%3A%2F%2Fblog.james-carr.org%2F2006%2F11%2F03%2Ftdd-anti-patterns%2F&title=TDD%20Anti-Patterns%20%7C%20James%20Carr&ate=AT-xa-4a65e1d93cd75e94/-/-/4db7ef3458d507e2/3&uid=4db7ef34829a1886&CXNID=2000001.5215456080540439074NXC&tt=0"
								target="_blank" title="Digg This"><img
								src="./TDD Anti-Patterns   James Carr_files/digg.png" width="32"
								height="32" alt="Digg">
							</a> <a class="addthis_button_stumbleupon at300b"
								href="http://www.addthis.com/bookmark.php?v=250&winname=addthis&pub=xa-4a65e1d93cd75e94&source=tbx-250&lng=en-US&s=stumbleupon&url=http%3A%2F%2Fblog.james-carr.org%2F2006%2F11%2F03%2Ftdd-anti-patterns%2F&title=TDD%20Anti-Patterns%20%7C%20James%20Carr&ate=AT-xa-4a65e1d93cd75e94/-/-/4db7ef3458d507e2/4&uid=4db7ef347c1377c9&CXNID=2000001.5215456080540439074NXC&tt=0"
								target="_blank" title="Send to StumbleUpon"><img
								src="./TDD Anti-Patterns   James Carr_files/stumbleupon.png"
								width="32" height="32" alt="Stumbleupon">
							</a> <a class="addthis_button_favorites at300b"
								title="Save to Favorites"><img
								src="./TDD Anti-Patterns   James Carr_files/favorites.png"
								width="32" height="32" alt="Favorites">
							</a> <a class="addthis_button_more at300b" title="View more services"><img
								src="./TDD Anti-Patterns   James Carr_files/more.png" width="32"
								height="32" alt="More">
							</a>
						</div>
						<script type="text/javascript"
							src="./TDD Anti-Patterns   James Carr_files/addthis_widget.js"></script>
						<div class="atclear"></div>
					</div>

					<ul>
						<li id="gitpress-2" class="widget gitpress_widget"><h2
								class="widgettitle"></h2>
						</li>
						<li id="github-badge" style="list-style: none"><h2
								class="header">
								<span class="title">My Repositories</span> <span>(<a
									href="http://github.com/jamescarr">jamescarr</a>)</span>
							</h2>
							<div class="body">
								<div class="repos">
									<ul id="repo_listing">
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Jasmine clientside runner written in node.js"><strong><a
													href="https://github.com/jamescarr/jasmine-tool"
													title="Jasmine clientside runner written in node.js"
													target="_blank">jasmine-tool</a> </strong>
												<div class="description" style="display: none;">Jasmine
													clientside runner written in node.js</div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/java-project-template"
													title="" target="_blank">java-project-template</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/javascript-bdd-presentation"
													title="" target="_blank">javascript-bdd-presentation</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="A collection of examples using various different frameworks to test drive javascript"><strong><a
													href="https://github.com/jamescarr/javascript-testdrive-example"
													title="A collection of examples using various different frameworks to test drive javascript"
													target="_blank">javascript-testdrive-example</a> </strong>
												<div class="description" style="display: none;">A
													collection of examples using various different frameworks
													to test drive javascript</div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/irc-camel-example"
													title="" target="_blank">irc-camel-example</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Various tools to manipulate text, such as linkifying text."><strong><a
													href="https://github.com/jamescarr/jquery-text-tools"
													title="Various tools to manipulate text, such as linkifying text."
													target="_blank">jquery-text-tools</a> </strong>
												<div class="description" style="display: none;">Various
													tools to manipulate text, such as linkifying text.</div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Use jquery. Harness twitter."><strong><a
													href="https://github.com/jamescarr/jquery-twitter"
													title="Use jquery. Harness twitter." target="_blank">jquery-twitter</a>
											</strong>
												<div class="description" style="display: none;">Use
													jquery. Harness twitter.</div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="ant tasks to run jsspec tests"><strong><a
													href="https://github.com/jamescarr/jsspec-ant"
													title="ant tasks to run jsspec tests" target="_blank">jsspec-ant</a>
											</strong>
												<div class="description" style="display: none;">ant
													tasks to run jsspec tests</div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/lame-chat" title=""
													target="_blank">lame-chat</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="evented I/O for v8 javascript"><strong><a
													href="https://github.com/jamescarr/node"
													title="evented I/O for v8 javascript" target="_blank">node</a>
											</strong>
												<div class="description" style="display: none;">evented
													I/O for v8 javascript</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Intro to node.js presentation + code samples"><strong><a
													href="https://github.com/jamescarr/intro-to-nodejs"
													title="Intro to node.js presentation + code samples"
													target="_blank">intro-to-nodejs</a> </strong>
												<div class="description" style="display: none;">Intro
													to node.js presentation + code samples</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Various examples of replicating data across node instances"><strong><a
													href="https://github.com/jamescarr/node-replication-examples"
													title="Various examples of replicating data across node instances"
													target="_blank">node-replication-examples</a> </strong>
												<div class="description" style="display: none;">Various
													examples of replicating data across node instances</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Placeholder emulator BDD" d="" with=""
											jasmine="" (used="" for="" examples)'=""><strong><a
													href="https://github.com/jamescarr/html5-placeholder-emu"
													title="Placeholder emulator BDD" d="" with="" jasmine=""
													(used="" for="" examples)'="" target="_blank">html5-placeholder-emu</a>
											</strong>
												<div class="description" style="display: none;">Placeholder
													emulator BDD'd with jasmine (used for examples)</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/node-shopping-cart"
													title="" target="_blank">node-shopping-cart</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Just a commit of grails training this week"><strong><a
													href="https://github.com/jamescarr/grails-training"
													title="Just a commit of grails training this week"
													target="_blank">grails-training</a> </strong>
												<div class="description" style="display: none;">Just a
													commit of grails training this week</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Delicious example using Socket.IO to publish and receive messages over AMQP "><strong><a
													href="https://github.com/jamescarr/nodejs-amqp-example"
													title="Delicious example using Socket.IO to publish and receive messages over AMQP "
													target="_blank">nodejs-amqp-example</a> </strong>
												<div class="description" style="display: none;">Delicious
													example using Socket.IO to publish and receive messages
													over AMQP</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Trying out easyb + geb"><strong><a
													href="https://github.com/jamescarr/gradle-easyb-geb-example"
													title="Trying out easyb + geb" target="_blank">gradle-easyb-geb-example</a>
											</strong>
												<div class="description" style="display: none;">Trying
													out easyb + geb</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/nodejs-training"
													title="" target="_blank">nodejs-training</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="An example of a multi-module project utilizing a CXF client and servier"><strong><a
													href="https://github.com/jamescarr/gradle-cxf-example"
													title="An example of a multi-module project utilizing a CXF client and servier"
													target="_blank">gradle-cxf-example</a> </strong>
												<div class="description" style="display: none;">An
													example of a multi-module project utilizing a CXF client
													and servier</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/operation-dominic"
													title="" target="_blank">operation-dominic</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="A powerful build system for the JVM"><strong><a
													href="https://github.com/jamescarr/gradle"
													title="A powerful build system for the JVM" target="_blank">gradle</a>
											</strong>
												<div class="description" style="display: none;">A
													powerful build system for the JVM</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Mega library that includes various loadable modules for interacting with different payment gateways"><strong><a
													href="https://github.com/jamescarr/paynode"
													title="Mega library that includes various loadable modules for interacting with different payment gateways"
													target="_blank">paynode</a> </strong>
												<div class="description" style="display: none;">Mega
													library that includes various loadable modules for
													interacting with different payment gateways</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Examples from my google collections presentation"><strong><a
													href="https://github.com/jamescarr/google-collections-presentation"
													title="Examples from my google collections presentation"
													target="_blank">google-collections-presentation</a> </strong>
												<div class="description" style="display: none;">Examples
													from my google collections presentation</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/Perfect-Number-Kata"
													title="" target="_blank">Perfect-Number-Kata</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/gameofllfe-js" title=""
													target="_blank">gameofllfe-js</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Simple example application using node.js + express + kiwi + jspec"><strong><a
													href="https://github.com/jamescarr/perfect-numbers-node"
													title="Simple example application using node.js + express + kiwi + jspec"
													target="_blank">perfect-numbers-node</a> </strong>
												<div class="description" style="display: none;">Simple
													example application using node.js + express + kiwi + jspec</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="An example of applying Form Template Method (205) from refactoring to patterns"><strong><a
													href="https://github.com/jamescarr/form-template-refactoring"
													title="An example of applying Form Template Method (205) from refactoring to patterns"
													target="_blank">form-template-refactoring</a> </strong>
												<div class="description" style="display: none;">An
													example of applying Form Template Method (205) from
													refactoring to patterns</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="My personal scala exercises"><strong><a
													href="https://github.com/jamescarr/scala-examples"
													title="My personal scala exercises" target="_blank">scala-examples</a>
											</strong>
												<div class="description" style="display: none;">My
													personal scala exercises</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Quick websocket + file api spike"><strong><a
													href="https://github.com/jamescarr/file-api-spike"
													title="Quick websocket + file api spike" target="_blank">file-api-spike</a>
											</strong>
												<div class="description" style="display: none;">Quick
													websocket + file api spike</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Game Of Life in Scala"><strong><a
													href="https://github.com/jamescarr/scala-game-of-life"
													title="Game Of Life in Scala" target="_blank">scala-game-of-life</a>
											</strong>
												<div class="description" style="display: none;">Game
													Of Life in Scala</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="An example project to show the way I"
											m="" testing="" node.js'=""><strong><a
													href="https://github.com/jamescarr/example-nodejs-project"
													title="An example project to show the way I" m=""
													testing="" node.js'="" target="_blank">example-nodejs-project</a>
											</strong>
												<div class="description" style="display: none;">An
													example project to show the way I'm testing node.js</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Just a simple gradle file for initializing hybrid scala/java projects"><strong><a
													href="https://github.com/jamescarr/scala-gradle-template"
													title="Just a simple gradle file for initializing hybrid scala/java projects"
													target="_blank">scala-gradle-template</a> </strong>
												<div class="description" style="display: none;">Just a
													simple gradle file for initializing hybrid scala/java
													projects</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="AMQP based replication for ehcache"><strong><a
													href="https://github.com/jamescarr/ehcache-amqpreplication"
													title="AMQP based replication for ehcache" target="_blank">ehcache-amqpreplication</a>
											</strong>
												<div class="description" style="display: none;">AMQP
													based replication for ehcache</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="prime factors kata done with specs"><strong><a
													href="https://github.com/jamescarr/scala-prime-factors"
													title="prime factors kata done with specs" target="_blank">scala-prime-factors</a>
											</strong>
												<div class="description" style="display: none;">prime
													factors kata done with specs</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="common configs to share"><strong><a
													href="https://github.com/jamescarr/dotfile"
													title="common configs to share" target="_blank">dotfile</a>
											</strong>
												<div class="description" style="display: none;">common
													configs to share</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Various snippets for developing node.js from vim"><strong><a
													href="https://github.com/jamescarr/snipmate-nodejs"
													title="Various snippets for developing node.js from vim"
													target="_blank">snipmate-nodejs</a> </strong>
												<div class="description" style="display: none;">Various
													snippets for developing node.js from vim</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="An example service to manage dealers using RESTEasy"><strong><a
													href="https://github.com/jamescarr/dealer-service"
													title="An example service to manage dealers using RESTEasy"
													target="_blank">dealer-service</a> </strong>
												<div class="description" style="display: none;">An
													example service to manage dealers using RESTEasy</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Code kata from http://rubyquiz.com/quiz1.html implemented in javascript"><strong><a
													href="https://github.com/jamescarr/solitaire-cipher"
													title="Code kata from http://rubyquiz.com/quiz1.html implemented in javascript"
													target="_blank">solitaire-cipher</a> </strong>
												<div class="description" style="display: none;">Code
													kata from http://rubyquiz.com/quiz1.html implemented in
													javascript</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Enables full-text searching of CouchDB documents using Lucene"><strong><a
													href="https://github.com/jamescarr/couchdb-lucene"
													title="Enables full-text searching of CouchDB documents using Lucene"
													target="_blank">couchdb-lucene</a> </strong>
												<div class="description" style="display: none;">Enables
													full-text searching of CouchDB documents using Lucene</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Spring AMQP - support for Spring programming model with AMQP, especially but not limited to RabbitMQ"><strong><a
													href="https://github.com/jamescarr/spring-amqp"
													title="Spring AMQP - support for Spring programming model with AMQP, especially but not limited to RabbitMQ"
													target="_blank">spring-amqp</a> </strong>
												<div class="description" style="display: none;">Spring
													AMQP - support for Spring programming model with AMQP,
													especially but not limited to RabbitMQ</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Opscode Cookbooks for Chef"><strong><a
													href="https://github.com/jamescarr/cookbooks"
													title="Opscode Cookbooks for Chef" target="_blank">cookbooks</a>
											</strong>
												<div class="description" style="display: none;">Opscode
													Cookbooks for Chef</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Demo app trying to accomplish resteasy implementation"><strong><a
													href="https://github.com/jamescarr/spring3-playground"
													title="Demo app trying to accomplish resteasy implementation"
													target="_blank">spring3-playground</a> </strong>
												<div class="description" style="display: none;">Demo
													app trying to accomplish resteasy implementation</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Idea for a coding dojo site"><strong><a
													href="https://github.com/jamescarr/codedojo"
													title="Idea for a coding dojo site" target="_blank">codedojo</a>
											</strong>
												<div class="description" style="display: none;">Idea
													for a coding dojo site</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="a web app for HTTP debugging"><strong><a
													href="https://github.com/jamescarr/Spyglass"
													title="a web app for HTTP debugging" target="_blank">Spyglass</a>
											</strong>
												<div class="description" style="display: none;">a web
													app for HTTP debugging</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Old chef cookbook for an EC2 instance I once did."><strong><a
													href="https://github.com/jamescarr/chef-salesfreeq"
													title="Old chef cookbook for an EC2 instance I once did."
													target="_blank">chef-salesfreeq</a> </strong>
												<div class="description" style="display: none;">Old
													chef cookbook for an EC2 instance I once did.</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Yet another sample application utilizing amqp"><strong><a
													href="https://github.com/jamescarr/stock-amqp-service-sample"
													title="Yet another sample application utilizing amqp"
													target="_blank">stock-amqp-service-sample</a> </strong>
												<div class="description" style="display: none;">Yet
													another sample application utilizing amqp</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="Chef Resources and Providers for deploying ruby web apps without capistrano"><strong><a
													href="https://github.com/jamescarr/chef-deploy"
													title="Chef Resources and Providers for deploying ruby web apps without capistrano"
													target="_blank">chef-deploy</a> </strong>
												<div class="description" style="display: none;">Chef
													Resources and Providers for deploying ruby web apps without
													capistrano</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/strange-passions"
													title="" target="_blank">strange-passions</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Examples for Camel JNB Article"><strong><a
													href="https://github.com/jamescarr/camel-jnb-article"
													title="Examples for Camel JNB Article" target="_blank">camel-jnb-article</a>
											</strong>
												<div class="description" style="display: none;">Examples
													for Camel JNB Article</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="A Collection of Interceptors for Struts2"><strong><a
													href="https://github.com/jamescarr/struts2-interceptors"
													title="A Collection of Interceptors for Struts2"
													target="_blank">struts2-interceptors</a> </strong>
												<div class="description" style="display: none;">A
													Collection of Interceptors for Struts2</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/camel-example" title=""
													target="_blank">camel-example</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="test"><strong><a
													href="https://github.com/jamescarr/test" title="test"
													target="_blank">test</a> </strong>
												<div class="description" style="display: none;">test</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="braintree node.js client library"><strong><a
													href="https://github.com/jamescarr/braintree_node"
													title="braintree node.js client library" target="_blank">braintree_node</a>
											</strong>
												<div class="description" style="display: none;">braintree
													node.js client library</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Examples and more for NFJS Presentation"><strong><a
													href="https://github.com/jamescarr/testdoubles-with-mockito"
													title="Examples and more for NFJS Presentation"
													target="_blank">testdoubles-with-mockito</a> </strong>
												<div class="description" style="display: none;">Examples
													and more for NFJS Presentation</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title=""><strong><a
													href="https://github.com/jamescarr/amqpreplication-demo"
													title="" target="_blank">amqpreplication-demo</a> </strong>
												<div class="description" style="display: none;"></div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Demo of websockets"><strong><a
													href="https://github.com/jamescarr/websockets-demo"
													title="Demo of websockets" target="_blank">websockets-demo</a>
											</strong>
												<div class="description" style="display: none;">Demo
													of websockets</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public" title="Why wait? Use HTML5 now, not tomorrow."><strong><a
													href="https://github.com/jamescarr/jquery-html5-shim"
													title="Why wait? Use HTML5 now, not tomorrow."
													target="_blank">jquery-html5-shim</a> </strong>
												<div class="description" style="display: none;">Why
													wait? Use HTML5 now, not tomorrow.</div>
										</li>
										<li class="public clickable" style="display: none;"><img
											src="./TDD Anti-Patterns   James Carr_files/public.png"
											alt="public"
											title="my dot vim directory, shared on github for reuse on multiple machines!"><strong><a
													href="https://github.com/jamescarr/.vim"
													title="my dot vim directory, shared on github for reuse on multiple machines!"
													target="_blank">.vim</a> </strong>
												<div class="description" style="display: none;">my dot
													vim directory, shared on github for reuse on multiple
													machines!</div>
										</li>
									</ul>
								</div>
								<a
									href="http://blog.james-carr.org/2006/11/03/tdd-anti-patterns/#"
									class="more">Show all (58)</a>
							</div>
							<div class="footer">
								<a href="http://drnic.github.com/github-badges">GitHub Badge</a>
								| Written by <a href="http://drnicwilliams.com/">Dr Nic</a>
							</div></li>
						<script type="text/javascript" charset="utf-8">
          GITHUB_TITLE="My Repositories";
          GITHUB_USERNAME="jamescarr";
          GITHUB_HEAD="h2";
        </script>
						<script
							src="./TDD Anti-Patterns   James Carr_files/github-badge-launcher.js"
							type="text/javascript"></script>
						<script type="text/javascript"
							src="./TDD Anti-Patterns   James Carr_files/jquery.js"></script>
						<script type="text/javascript"
							src="./TDD Anti-Patterns   James Carr_files/jquery.template.js"></script>
						<script onload="GitHubBadge.Launcher.loadedLibraries()"
							type="text/javascript"
							src="./TDD Anti-Patterns   James Carr_files/github-badge.js"></script>
						<li id="tag_cloud-3" class="widget widget_tag_cloud"><h2
								class="widgettitle">Tags</h2>
							<div>
								<a href="http://blog.james-carr.org/tag/google-collections/"
									class="tag-link-40" title="1 topic" style="font-size: 8pt;">google-collections</a>
								<a href="http://blog.james-carr.org/tag/java/"
									class="tag-link-8" title="1 topic" style="font-size: 8pt;">Java</a>
								<a
									href="http://blog.james-carr.org/tag/rabbitmq-messaging-erlang/"
									class="tag-link-42" title="1 topic" style="font-size: 8pt;">rabbitmq
									messaging erlang</a> <a
									href="http://blog.james-carr.org/tag/spring3-java/"
									class="tag-link-43" title="1 topic" style="font-size: 8pt;">spring3
									java</a>
							</div>
						</li>
						<li id="recent-comments-3" class="widget widget_recent_comments"><h2
								class="widgettitle">Recent Comments</h2>
							<ul id="recentcomments">
								<li class="recentcomments">Pat on <a
									href="http://blog.james-carr.org/2006/07/11/ssh-over-java/#comment-180565">SSH
										Over Java</a></li>
								<li class="recentcomments">Igor Kolomiets on <a
									href="http://blog.james-carr.org/2011/02/28/amqp-based-cache-replication/#comment-176617">AMQP
										Based Cache Replication</a></li>
								<li class="recentcomments">Tobias Flohre on <a
									href="http://blog.james-carr.org/2011/02/12/cache-abstraction-in-spring-3-1-0-m1/#comment-173227">Cache
										Abstraction in Spring 3.1.0.M1</a></li>
								<li class="recentcomments"><a
									href="http://www.javacodegeeks.com/" rel="external nofollow"
									class="url">Fabrizio</a> on <a
									href="http://blog.james-carr.org/about/#comment-172940">About</a>
								</li>
								<li class="recentcomments"><a
									href="http://topsy.com/blog.james-carr.org/2011/02/12/new-for-spring-3-1-0-m1-componentscan/?utm_source=pingback&utm_campaign=L2"
									rel="external nofollow" class="url">Tweets that mention New
										for Spring 3.1.0.M1: @ComponentScan | James Carr -- Topsy.com</a>
									on <a
									href="http://blog.james-carr.org/2011/02/12/new-for-spring-3-1-0-m1-componentscan/#comment-172742">New
										for Spring 3.1.0.M1: @ComponentScan</a></li>
							</ul></li>
					</ul>
				</div>
			</div>

		</div>
		<!--/container-->
		<div id="footer">
			Copyright © <a href="http://blog.james-carr.org/"><strong>James
					Carr</strong> </a> - Rants and Musings of an Agile Developer <br>
				<div class="footer-credits">
					Powered by <a href="http://wordpress.org/">WordPress</a> | <a
						href="http://flexithemes.com/themes/modern-style/">Modern
						Style</a> theme by <a href="http://flexithemes.com/">FlexiThemes</a>
				</div>
		</div>
		<!--/footer-->

	</div>
	<!--/wrapper-->





</body>
</html>